mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 579885. Part 2: Never use SOURCE to composite ThebesLayers into the target, just use OVER and assume cairo backends will optimize. r=vlad,a=blocking
This commit is contained in:
parent
5dc58e0b07
commit
32e1df6ff8
@ -292,8 +292,7 @@ public:
|
||||
* drawn before this is called. The contents of the buffer are drawn
|
||||
* to aTarget.
|
||||
*/
|
||||
void DrawTo(ThebesLayer* aLayer, PRBool aIsOpaqueContent,
|
||||
gfxContext* aTarget, float aOpacity);
|
||||
void DrawTo(ThebesLayer* aLayer, gfxContext* aTarget, float aOpacity);
|
||||
|
||||
virtual already_AddRefed<gfxASurface>
|
||||
CreateBuffer(ContentType aType, const nsIntSize& aSize);
|
||||
@ -528,7 +527,7 @@ BasicThebesLayer::Paint(gfxContext* aContext,
|
||||
}
|
||||
}
|
||||
|
||||
mBuffer.DrawTo(this, canUseOpaqueSurface, target, opacity);
|
||||
mBuffer.DrawTo(this, target, opacity);
|
||||
}
|
||||
|
||||
static PRBool
|
||||
@ -542,7 +541,6 @@ IsClippingCheap(gfxContext* aTarget, const nsIntRegion& aRegion)
|
||||
|
||||
void
|
||||
BasicThebesLayerBuffer::DrawTo(ThebesLayer* aLayer,
|
||||
PRBool aIsOpaqueContent,
|
||||
gfxContext* aTarget,
|
||||
float aOpacity)
|
||||
{
|
||||
@ -559,9 +557,6 @@ BasicThebesLayerBuffer::DrawTo(ThebesLayer* aLayer,
|
||||
// and may cause gray lines.
|
||||
gfxUtils::ClipToRegionSnapped(aTarget, aLayer->GetVisibleRegion());
|
||||
}
|
||||
if (aIsOpaqueContent) {
|
||||
aTarget->SetOperator(gfxContext::OPERATOR_SOURCE);
|
||||
}
|
||||
DrawBufferWithRotation(aTarget, aOpacity,
|
||||
aLayer->GetXResolution(), aLayer->GetYResolution());
|
||||
aTarget->Restore();
|
||||
@ -1995,7 +1990,7 @@ BasicShadowThebesLayer::Paint(gfxContext* aContext,
|
||||
gfxContext* target = BasicManager()->GetTarget();
|
||||
NS_ASSERTION(target, "We shouldn't be called if there's no target");
|
||||
|
||||
mFrontBuffer.DrawTo(this, CanUseOpaqueSurface(), target, GetEffectiveOpacity());
|
||||
mFrontBuffer.DrawTo(this, target, GetEffectiveOpacity());
|
||||
}
|
||||
|
||||
class BasicShadowContainerLayer : public ShadowContainerLayer, BasicImplData {
|
||||
|
Loading…
Reference in New Issue
Block a user