summaryrefslogtreecommitdiff
path: root/chromium/ui/gl/gl_glx_api_implementation.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/gl/gl_glx_api_implementation.cc')
-rw-r--r--chromium/ui/gl/gl_glx_api_implementation.cc38
1 files changed, 29 insertions, 9 deletions
diff --git a/chromium/ui/gl/gl_glx_api_implementation.cc b/chromium/ui/gl/gl_glx_api_implementation.cc
index 413a385f2e6..d7903a2654d 100644
--- a/chromium/ui/gl/gl_glx_api_implementation.cc
+++ b/chromium/ui/gl/gl_glx_api_implementation.cc
@@ -7,7 +7,9 @@
#include "base/command_line.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
+#include "ui/gl/gl_context.h"
#include "ui/gl/gl_implementation.h"
+#include "ui/gl/gl_surface_glx.h"
namespace gl {
@@ -21,7 +23,6 @@ void InitializeStaticGLBindingsGLX() {
}
g_real_glx->Initialize(&g_driver_glx);
g_current_glx_context = g_real_glx;
- g_driver_glx.InitializeExtensionBindings();
}
void InitializeDebugGLBindingsGLX() {
@@ -68,16 +69,10 @@ RealGLXApi::~RealGLXApi() {
}
void RealGLXApi::Initialize(DriverGLX* driver) {
- InitializeWithCommandLine(driver, base::CommandLine::ForCurrentProcess());
-}
-
-void RealGLXApi::InitializeWithCommandLine(DriverGLX* driver,
- base::CommandLine* command_line) {
- DCHECK(command_line);
InitializeBase(driver);
+}
- const std::string disabled_extensions = command_line->GetSwitchValueASCII(
- switches::kDisableGLExtensions);
+void RealGLXApi::SetDisabledExtensions(const std::string& disabled_extensions) {
disabled_exts_.clear();
filtered_exts_ = "";
if (!disabled_extensions.empty()) {
@@ -105,11 +100,26 @@ const char* RealGLXApi::glXQueryExtensionsStringFn(Display* dpy,
}
DebugGLXApi::DebugGLXApi(GLXApi* glx_api) : glx_api_(glx_api) {}
+
DebugGLXApi::~DebugGLXApi() {}
+void DebugGLXApi::SetDisabledExtensions(
+ const std::string& disabled_extensions) {
+ if (glx_api_) {
+ glx_api_->SetDisabledExtensions(disabled_extensions);
+ }
+}
+
TraceGLXApi::~TraceGLXApi() {
}
+void TraceGLXApi::SetDisabledExtensions(
+ const std::string& disabled_extensions) {
+ if (glx_api_) {
+ glx_api_->SetDisabledExtensions(disabled_extensions);
+ }
+}
+
bool GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo* info) {
Display* display = glXGetCurrentDisplay();
const int kDefaultScreen = 0;
@@ -130,4 +140,14 @@ bool GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo* info) {
return true;
}
+void SetDisabledExtensionsGLX(const std::string& disabled_extensions) {
+ DCHECK(g_current_glx_context);
+ DCHECK(GLContext::TotalGLContexts() == 0);
+ g_current_glx_context->SetDisabledExtensions(disabled_extensions);
+}
+
+bool InitializeExtensionSettingsOneOffGLX() {
+ return GLSurfaceGLX::InitializeExtensionSettingsOneOff();
+}
+
} // namespace gl