Title: [161285] trunk/Source/WebCore
Revision
161285
Author
[email protected]
Date
2014-01-03 13:45:55 -0800 (Fri, 03 Jan 2014)

Log Message

[WebGL] glScissor test is not accounted for when generating internal rendering textures.
https://bugs.webkit.org/show_bug.cgi?id=126455
<rdar://problem/15744206>

Reviewed by Dean Jackson.

Covered by webgl/1.0.2/conformance/rendering/gl-scissor-test.html

* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture): Check state of GL_SCISSOR_TEST and GL_DITHER, deactivate them during
our internal drawing, then turn them back on for further processing.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (161284 => 161285)


--- trunk/Source/WebCore/ChangeLog	2014-01-03 21:40:41 UTC (rev 161284)
+++ trunk/Source/WebCore/ChangeLog	2014-01-03 21:45:55 UTC (rev 161285)
@@ -1,3 +1,17 @@
+2014-01-03  Brent Fulgham  <[email protected]>
+
+        [WebGL] glScissor test is not accounted for when generating internal rendering textures.
+        https://bugs.webkit.org/show_bug.cgi?id=126455
+        <rdar://problem/15744206>
+
+        Reviewed by Dean Jackson.
+
+        Covered by webgl/1.0.2/conformance/rendering/gl-scissor-test.html
+
+        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+        (WebCore::GraphicsContext3D::prepareTexture): Check state of GL_SCISSOR_TEST and GL_DITHER, deactivate them during
+        our internal drawing, then turn them back on for further processing.
+
 2014-01-03  Simon Fraser  <[email protected]>
 
         Maybe fix Windows build.

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp (161284 => 161285)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp	2014-01-03 21:40:41 UTC (rev 161284)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp	2014-01-03 21:45:55 UTC (rev 161285)
@@ -195,6 +195,12 @@
         return;
 
     makeContextCurrent();
+
+    GLboolean isScissorEnabled = ::glIsEnabled(GL_SCISSOR_TEST);
+    ::glDisable(GL_SCISSOR_TEST);
+    GLboolean isDitherEnabled = ::glIsEnabled(GL_DITHER);
+    ::glDisable(GL_DITHER);
+    
     if (m_attrs.antialias)
         resolveMultisamplingIfNecessary();
 
@@ -208,6 +214,11 @@
         ::glBindFramebufferEXT(GraphicsContext3D::FRAMEBUFFER, m_state.boundFBO);
     ::glFinish();
     m_layerComposited = true;
+
+    if (isScissorEnabled)
+        ::glEnable(GL_SCISSOR_TEST);
+    if (isDitherEnabled)
+        ::glEnable(GL_DITHER);
 }
 #endif
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to