Bug 1250710 - Save and restore state, since this is used by WebGL. - r=jrmuizel draft
authorJeff Gilbert <jgilbert@mozilla.com>
Mon, 20 Jun 2016 14:09:31 -0700
changeset 383815 14e35a8d97dab2ef729eec0e21574d7e0450edf5
parent 383814 8866e686d49fee6d45ef56003251a1a7da829aa6
child 383816 1bd825949eed72654a6e8db56c97a8c428aa88f2
push id22101
push userbmo:jgilbert@mozilla.com
push dateTue, 05 Jul 2016 04:23:13 +0000
reviewersjrmuizel
bugs1250710
milestone50.0a1
Bug 1250710 - Save and restore state, since this is used by WebGL. - r=jrmuizel MozReview-Commit-ID: 3KZdIMpcRch
gfx/gl/GLBlitHelper.cpp
--- a/gfx/gl/GLBlitHelper.cpp
+++ b/gfx/gl/GLBlitHelper.cpp
@@ -898,19 +898,23 @@ GLBlitHelper::BlitImageToFramebuffer(lay
     mGL->fViewport(0, 0, destSize.width, destSize.height);
 
     switch (type) {
 #ifdef MOZ_WIDGET_GONK
     case ConvertGralloc:
         return BlitGrallocImage(static_cast<layers::GrallocImage*>(srcImage));
 #endif
 
-    case ConvertPlanarYCbCr:
-        mGL->fPixelStorei(LOCAL_GL_UNPACK_ALIGNMENT, 1);
-        return BlitPlanarYCbCrImage(static_cast<PlanarYCbCrImage*>(srcImage));
+    case ConvertPlanarYCbCr: {
+            const auto saved = mGL->GetIntAs<GLint>(LOCAL_GL_UNPACK_ALIGNMENT);
+            mGL->fPixelStorei(LOCAL_GL_UNPACK_ALIGNMENT, 1);
+            const auto ret = BlitPlanarYCbCrImage(static_cast<PlanarYCbCrImage*>(srcImage));
+            mGL->fPixelStorei(LOCAL_GL_UNPACK_ALIGNMENT, saved);
+            return ret;
+        }
 
 #ifdef MOZ_WIDGET_ANDROID
     case ConvertSurfaceTexture:
         return BlitSurfaceTextureImage(static_cast<layers::SurfaceTextureImage*>(srcImage));
 
     case ConvertEGLImage:
         return BlitEGLImageImage(static_cast<layers::EGLImageImage*>(srcImage));
 #endif