From 7b6ff12193fda666064f0b56fd24644f6ba045cb Mon Sep 17 00:00:00 2001 From: Ryan VanderMeulen Date: Tue, 30 Jul 2013 22:28:46 -0400 Subject: [PATCH] Backed out changeset 6846b610be41 (bug 897409) for suspicion of making Win8 mochitest-mc perma-orange. --- gfx/layers/CopyableCanvasLayer.cpp | 13 +++++++++---- gfx/layers/client/CanvasClient.cpp | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gfx/layers/CopyableCanvasLayer.cpp b/gfx/layers/CopyableCanvasLayer.cpp index 5476ee504303..1154321d0e6f 100644 --- a/gfx/layers/CopyableCanvasLayer.cpp +++ b/gfx/layers/CopyableCanvasLayer.cpp @@ -74,6 +74,11 @@ CopyableCanvasLayer::UpdateSurface(gfxASurface* aDestSurface, Layer* aMaskLayer) } if (mGLContext) { + if (aDestSurface && aDestSurface->GetType() != gfxASurface::SurfaceTypeImage) { + MOZ_ASSERT(false, "Destination surface must be ImageSurface type."); + return; + } + nsRefPtr readSurf; nsRefPtr resultSurf; @@ -88,9 +93,9 @@ CopyableCanvasLayer::UpdateSurface(gfxASurface* aDestSurface, Layer* aMaskLayer) ? gfxASurface::ImageFormatRGB24 : gfxASurface::ImageFormatARGB32; - bool needsTempSurface = !aDestSurface || - !(resultSurf = aDestSurface->GetAsImageSurface()); - if (needsTempSurface) { + if (aDestSurface) { + resultSurf = static_cast(aDestSurface); + } else { resultSurf = GetTempSurface(readSize, format); } MOZ_ASSERT(resultSurf); @@ -151,7 +156,7 @@ CopyableCanvasLayer::UpdateSurface(gfxASurface* aDestSurface, Layer* aMaskLayer) } // stick our surface into mSurface, so that the Paint() path is the same - if (needsTempSurface) { + if (!aDestSurface) { mSurface = resultSurf; } } diff --git a/gfx/layers/client/CanvasClient.cpp b/gfx/layers/client/CanvasClient.cpp index 8bd9d48dcf80..2286ab87d156 100644 --- a/gfx/layers/client/CanvasClient.cpp +++ b/gfx/layers/client/CanvasClient.cpp @@ -66,7 +66,7 @@ CanvasClient2D::Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) : gfxASurface::CONTENT_COLOR_ALPHA; mDeprecatedTextureClient->EnsureAllocated(aSize, contentType); - gfxASurface* surface = mDeprecatedTextureClient->LockSurface(); + gfxASurface* surface = mDeprecatedTextureClient->LockImageSurface(); aLayer->UpdateSurface(surface); mDeprecatedTextureClient->Unlock(); }