Bug 634759 Allow buffer rotation for mobile r=roc

This commit is contained in:
Benjamin Stover 2011-08-29 10:56:50 -07:00
parent 2d3be85bd0
commit d5d60db425
2 changed files with 6 additions and 3 deletions

View File

@ -713,12 +713,13 @@ BasicThebesLayer::PaintThebes(gfxContext* aContext,
{
PRUint32 flags = 0;
#ifndef MOZ_GFX_OPTIMIZE_MOBILE
gfxMatrix transform;
if (!GetEffectiveTransform().CanDraw2D(&transform) ||
transform.HasNonIntegerTranslation() ||
MustRetainContent() /*<=> has shadow layer*/) {
transform.HasNonIntegerTranslation()) {
flags |= ThebesLayerBuffer::PAINT_WILL_RESAMPLE;
}
#endif
Buffer::PaintState state =
mBuffer.BeginPaint(this, contentType, flags);
mValidRegion.Sub(mValidRegion, state.mRegionToInvalidate);

View File

@ -749,8 +749,9 @@ ThebesLayerOGL::RenderLayer(int aPreviousFrameBuffer,
CanUseOpaqueSurface() ? gfxASurface::CONTENT_COLOR :
gfxASurface::CONTENT_COLOR_ALPHA;
gfxMatrix transform2d;
PRUint32 flags = 0;
#ifndef MOZ_GFX_OPTIMIZE_MOBILE
gfxMatrix transform2d;
if (GetEffectiveTransform().Is2D(&transform2d)) {
if (transform2d.HasNonIntegerTranslation()) {
flags |= ThebesLayerBufferOGL::PAINT_WILL_RESAMPLE;
@ -758,6 +759,7 @@ ThebesLayerOGL::RenderLayer(int aPreviousFrameBuffer,
} else {
flags |= ThebesLayerBufferOGL::PAINT_WILL_RESAMPLE;
}
#endif
Buffer::PaintState state = mBuffer->BeginPaint(contentType, flags);
mValidRegion.Sub(mValidRegion, state.mRegionToInvalidate);