Bug 782786 - BasicCanvasLayer: avoid UpdateSurface of non-dirty canvases - r=BenWa

This commit is contained in:
Benoit Jacob 2012-08-23 14:56:23 -04:00
parent e5257b17de
commit 382623d7cc

View File

@ -120,6 +120,10 @@ BasicCanvasLayer::Initialize(const Data& aData)
void
BasicCanvasLayer::UpdateSurface(gfxASurface* aDestSurface, Layer* aMaskLayer)
{
if (!mDirty)
return;
mDirty = false;
if (mDrawTarget) {
mDrawTarget->Flush();
// TODO Fix me before turning accelerated quartz canvas by default
@ -133,10 +137,6 @@ BasicCanvasLayer::UpdateSurface(gfxASurface* aDestSurface, Layer* aMaskLayer)
return;
}
if (!mDirty)
return;
mDirty = false;
if (mGLContext) {
if (aDestSurface && aDestSurface->GetType() != gfxASurface::SurfaceTypeImage) {
NS_ASSERTION(aDestSurface->GetType() == gfxASurface::SurfaceTypeImage,
@ -393,6 +393,9 @@ BasicShadowableCanvasLayer::Paint(gfxContext* aContext, Layer* aMaskLayer)
return;
}
if (!mDirty)
return;
if (mGLContext &&
!mForceReadback &&
BasicManager()->GetParentBackendType() == mozilla::layers::LAYERS_OPENGL) {