// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/gl/gl_glx_api_implementation.h" #include "ui/gl/gl_implementation.h" namespace gfx { RealGLXApi* g_real_glx; void InitializeGLBindingsGLX() { g_driver_glx.InitializeBindings(); if (!g_real_glx) { g_real_glx = new RealGLXApi(); } g_real_glx->Initialize(&g_driver_glx); g_current_glx_context = g_real_glx; } void InitializeGLExtensionBindingsGLX(GLContext* context) { g_driver_glx.InitializeExtensionBindings(context); } void InitializeDebugGLBindingsGLX() { g_driver_glx.InitializeDebugBindings(); } void ClearGLBindingsGLX() { if (g_real_glx) { delete g_real_glx; g_real_glx = NULL; } g_current_glx_context = NULL; g_driver_glx.ClearBindings(); } GLXApi::GLXApi() { } GLXApi::~GLXApi() { } GLXApiBase::GLXApiBase() : driver_(NULL) { } GLXApiBase::~GLXApiBase() { } void GLXApiBase::InitializeBase(DriverGLX* driver) { driver_ = driver; } RealGLXApi::RealGLXApi() { } RealGLXApi::~RealGLXApi() { } void RealGLXApi::Initialize(DriverGLX* driver) { InitializeBase(driver); } TraceGLXApi::~TraceGLXApi() { } bool GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo* info) { Display* display = glXGetCurrentDisplay(); const int kDefaultScreen = 0; const char* vendor = glXQueryServerString(display, kDefaultScreen, GLX_VENDOR); const char* version = glXQueryServerString(display, kDefaultScreen, GLX_VERSION); const char* extensions = glXQueryServerString(display, kDefaultScreen, GLX_EXTENSIONS); *info = GLWindowSystemBindingInfo(); if (vendor) info->vendor = vendor; if (version) info->version = version; if (extensions) info->extensions = extensions; return true; } } // namespace gfx