Bug 1250710 - Save and restore state, since this is used by WebGL. - r=jrmuizel
MozReview-Commit-ID: 3KZdIMpcRch
--- 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