| // Copyright 2014 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 "build/build_config.h" |
| |
| #if defined(USE_EGL) |
| #include <EGL/egl.h> |
| #endif |
| |
| #include "ui/gl/gl_bindings.h" |
| |
| #if defined(USE_GLX) |
| #include "ui/gfx/x/x11_types.h" // nogncheck |
| #endif |
| |
| #if defined(OS_WIN) |
| #include "ui/gl/gl_surface_wgl.h" |
| #endif |
| |
| #if defined(USE_EGL) |
| #include "ui/gl/gl_surface_egl.h" |
| #endif |
| |
| namespace gl { |
| |
| std::string DriverOSMESA::GetPlatformExtensions() { |
| return ""; |
| } |
| |
| #if defined(OS_WIN) |
| std::string DriverWGL::GetPlatformExtensions() { |
| const char* str = nullptr; |
| str = wglGetExtensionsStringARB(GLSurfaceWGL::GetDisplayDC()); |
| if (str) |
| return str; |
| return wglGetExtensionsStringEXT(); |
| } |
| #endif |
| |
| #if defined(USE_EGL) |
| std::string DriverEGL::GetPlatformExtensions() { |
| EGLDisplay display = GLSurfaceEGL::GetHardwareDisplay(); |
| if (display == EGL_NO_DISPLAY) |
| return ""; |
| const char* str = eglQueryString(display, EGL_EXTENSIONS); |
| return str ? std::string(str) : ""; |
| } |
| |
| // static |
| std::string DriverEGL::GetClientExtensions() { |
| const char* str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); |
| return str ? std::string(str) : ""; |
| } |
| #endif |
| |
| #if defined(USE_GLX) |
| std::string DriverGLX::GetPlatformExtensions() { |
| const char* str = glXQueryExtensionsString(gfx::GetXDisplay(), 0); |
| return str ? std::string(str) : ""; |
| } |
| #endif |
| |
| } // namespace gl |