author | Benoit Jacob <jacob.benoit.1@gmail.com> |
Mon, 16 Jan 2012 17:07:18 -0500 | |
changeset 84602 | 71d5f079acca20cabcbb8f693683234d9c7d5b54 |
parent 84601 | 5634697d0acdc2653354a717f2196e53238a0c46 |
child 84603 | 0eba182bf9d7a359dd8dac054934c7fc0dc9825d |
push id | 21865 |
push user | Callek@gmail.com |
push date | Tue, 17 Jan 2012 03:28:17 +0000 |
treeherder | mozilla-central@34572943a3e4 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | vlad |
bugs | 612320 |
milestone | 12.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/canvas/src/WebGLContext.cpp +++ b/content/canvas/src/WebGLContext.cpp @@ -1019,20 +1019,22 @@ void WebGLContext::ForceClearFramebufferWithDefaultValues(PRUint32 mask, const nsIntRect& viewportRect) { MakeContextCurrent(); bool initializeColorBuffer = 0 != (mask & LOCAL_GL_COLOR_BUFFER_BIT); bool initializeDepthBuffer = 0 != (mask & LOCAL_GL_DEPTH_BUFFER_BIT); bool initializeStencilBuffer = 0 != (mask & LOCAL_GL_STENCIL_BUFFER_BIT); + // fun GL fact: no need to worry about the viewport here, glViewport is just setting up a coordinates transformation, + // it doesn't affect glClear at all + // prepare GL state for clearing gl->fDisable(LOCAL_GL_SCISSOR_TEST); gl->fDisable(LOCAL_GL_DITHER); - gl->PushViewportRect(viewportRect); if (initializeColorBuffer) { gl->fColorMask(1, 1, 1, 1); gl->fClearColor(0.f, 0.f, 0.f, 0.f); } if (initializeDepthBuffer) { gl->fDepthMask(1); @@ -1065,18 +1067,16 @@ WebGLContext::ForceClearFramebufferWithD } if (initializeStencilBuffer) { gl->fStencilMaskSeparate(LOCAL_GL_FRONT, mStencilWriteMaskFront); gl->fStencilMaskSeparate(LOCAL_GL_BACK, mStencilWriteMaskBack); gl->fClearStencil(mStencilClearValue); } - gl->PopViewportRect(); - if (mDitherEnabled) gl->fEnable(LOCAL_GL_DITHER); else gl->fDisable(LOCAL_GL_DITHER); if (mScissorTestEnabled) gl->fEnable(LOCAL_GL_SCISSOR_TEST); else