Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Unified Diff: ui/gl/gl_context.h

Issue 2934733002: Workaround for Intel 6xxx clear to 0/1 bug (Closed)
Patch Set: move gl_workarounds_ to a member of RealGLApi Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698