Index: ui/gl/gl_context.h |
diff --git a/ui/gl/gl_context.h b/ui/gl/gl_context.h |
index 0d1aa6d0f40492d74e3f056cc3ffbd53e4a2ef74..742779adca489fe185e6d4a5eb64b6c4ee90b76a 100644 |
--- a/ui/gl/gl_context.h |
+++ b/ui/gl/gl_context.h |
@@ -68,6 +68,12 @@ struct GLContextAttribs { |
ContextPriority context_priority = ContextPriorityMedium; |
}; |
+struct GLWorkarounds { |
+ // glClearColor does not always work on Intel 6xxx Mac drivers. See |
+ // crbug.com/710443. |
+ bool clear_to_zero_or_one_broken = false; |
+}; |
+ |
// Encapsulates an OpenGL context, hiding platform specific management. |
class GL_EXPORT GLContext : public base::RefCounted<GLContext> { |
public: |
@@ -96,6 +102,9 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> { |
// Creates a GPUTimingClient class which abstracts various GPU Timing exts. |
virtual scoped_refptr<GPUTimingClient> CreateGPUTimingClient() = 0; |
+ // Set the GL workarounds. |
+ void SetGLWorkarounds(const GLWorkarounds& workarounds); |
+ |
// Gets the GLStateRestorer for the context. |
GLStateRestorer* GetGLStateRestorer(); |
@@ -222,6 +231,8 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> { |
std::unique_ptr<GLVersionInfo> GenerateGLVersionInfo(); |
+ GLWorkarounds gl_workarounds_; |
+ |
bool static_bindings_initialized_ = false; |
bool dynamic_bindings_initialized_ = false; |
std::unique_ptr<DriverGL> driver_gl_; |