mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 1401638 - Set and reset mPermitSubpixelAA in push and pop layer for DrawTargetCapture. r=bas
MozReview-Commit-ID: DxeNaiAYJvb --HG-- extra : rebase_source : ea799e4f4d48b52702423d726304b1a5a96fbb65
This commit is contained in:
parent
a2d2f547b1
commit
9269f6c8a4
@ -227,6 +227,13 @@ DrawTargetCaptureImpl::PushLayer(bool aOpaque,
|
||||
const IntRect& aBounds,
|
||||
bool aCopyBackground)
|
||||
{
|
||||
// Have to update mPermitSubpixelAA for this DT
|
||||
// because some code paths query the current setting
|
||||
// to determine subpixel AA eligibility.
|
||||
PushedLayer layer(GetPermitSubpixelAA());
|
||||
mPushedLayers.push_back(layer);
|
||||
DrawTarget::SetPermitSubpixelAA(aOpaque);
|
||||
|
||||
AppendCommand(PushLayerCommand)(aOpaque,
|
||||
aOpacity,
|
||||
aMask,
|
||||
@ -238,6 +245,10 @@ DrawTargetCaptureImpl::PushLayer(bool aOpaque,
|
||||
void
|
||||
DrawTargetCaptureImpl::PopLayer()
|
||||
{
|
||||
MOZ_ASSERT(mPushedLayers.size());
|
||||
DrawTarget::SetPermitSubpixelAA(mPushedLayers.back().mOldPermitSubpixelAA);
|
||||
mPushedLayers.pop_back();
|
||||
|
||||
AppendCommand(PopLayerCommand)();
|
||||
}
|
||||
|
||||
|
@ -168,6 +168,14 @@ private:
|
||||
RefPtr<DrawTarget> mRefDT;
|
||||
IntSize mSize;
|
||||
|
||||
struct PushedLayer
|
||||
{
|
||||
PushedLayer(bool aOldPermitSubpixelAA)
|
||||
: mOldPermitSubpixelAA(aOldPermitSubpixelAA)
|
||||
{}
|
||||
bool mOldPermitSubpixelAA;
|
||||
};
|
||||
std::vector<PushedLayer> mPushedLayers;
|
||||
std::vector<uint8_t> mDrawCommandStorage;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user