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