1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/gl/gl_glx_api_implementation.h" 6 #include "ui/gl/gl_implementation.h" 7 8 namespace gfx { 9 10 RealGLXApi* g_real_glx; 11 InitializeGLBindingsGLX()12void InitializeGLBindingsGLX() { 13 g_driver_glx.InitializeBindings(); 14 if (!g_real_glx) { 15 g_real_glx = new RealGLXApi(); 16 } 17 g_real_glx->Initialize(&g_driver_glx); 18 g_current_glx_context = g_real_glx; 19 } 20 InitializeGLExtensionBindingsGLX(GLContext * context)21void InitializeGLExtensionBindingsGLX(GLContext* context) { 22 g_driver_glx.InitializeExtensionBindings(context); 23 } 24 InitializeDebugGLBindingsGLX()25void InitializeDebugGLBindingsGLX() { 26 g_driver_glx.InitializeDebugBindings(); 27 } 28 ClearGLBindingsGLX()29void ClearGLBindingsGLX() { 30 if (g_real_glx) { 31 delete g_real_glx; 32 g_real_glx = NULL; 33 } 34 g_current_glx_context = NULL; 35 g_driver_glx.ClearBindings(); 36 } 37 GLXApi()38GLXApi::GLXApi() { 39 } 40 ~GLXApi()41GLXApi::~GLXApi() { 42 } 43 GLXApiBase()44GLXApiBase::GLXApiBase() 45 : driver_(NULL) { 46 } 47 ~GLXApiBase()48GLXApiBase::~GLXApiBase() { 49 } 50 InitializeBase(DriverGLX * driver)51void GLXApiBase::InitializeBase(DriverGLX* driver) { 52 driver_ = driver; 53 } 54 RealGLXApi()55RealGLXApi::RealGLXApi() { 56 } 57 ~RealGLXApi()58RealGLXApi::~RealGLXApi() { 59 } 60 Initialize(DriverGLX * driver)61void RealGLXApi::Initialize(DriverGLX* driver) { 62 InitializeBase(driver); 63 } 64 ~TraceGLXApi()65TraceGLXApi::~TraceGLXApi() { 66 } 67 GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo * info)68bool GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo* info) { 69 Display* display = glXGetCurrentDisplay(); 70 const int kDefaultScreen = 0; 71 const char* vendor = 72 glXQueryServerString(display, kDefaultScreen, GLX_VENDOR); 73 const char* version = 74 glXQueryServerString(display, kDefaultScreen, GLX_VERSION); 75 const char* extensions = 76 glXQueryServerString(display, kDefaultScreen, GLX_EXTENSIONS); 77 *info = GLWindowSystemBindingInfo(); 78 if (vendor) 79 info->vendor = vendor; 80 if (version) 81 info->version = version; 82 if (extensions) 83 info->extensions = extensions; 84 return true; 85 } 86 87 } // namespace gfx 88 89 90