зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1236282 - Clip color layer drawing in BasicCompositor so that unbounded operators don't erase stuff outside the layer. r=Bas
The same as bug 1077358, but for BasicCompositor. --HG-- extra : commitid : 2xE66rOGdFx extra : rebase_source : 4a81bbee35ae342add1bfca742d99b2c6dd73dcc
This commit is contained in:
Родитель
4eb9692846
Коммит
e69314a2fd
|
@ -11,6 +11,7 @@
|
|||
#include "gfx2DGlue.h"
|
||||
#include "mozilla/gfx/2D.h"
|
||||
#include "mozilla/gfx/Helpers.h"
|
||||
#include "mozilla/gfx/Tools.h"
|
||||
#include "gfxUtils.h"
|
||||
#include "YCbCrUtils.h"
|
||||
#include <algorithm>
|
||||
|
@ -406,8 +407,17 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
|
|||
EffectSolidColor* effectSolidColor =
|
||||
static_cast<EffectSolidColor*>(aEffectChain.mPrimaryEffect.get());
|
||||
|
||||
bool unboundedOp = !IsOperatorBoundByMask(blendMode);
|
||||
if (unboundedOp) {
|
||||
dest->PushClipRect(aRect);
|
||||
}
|
||||
|
||||
FillRectWithMask(dest, aRect, effectSolidColor->mColor,
|
||||
DrawOptions(aOpacity, blendMode), sourceMask, &maskTransform);
|
||||
|
||||
if (unboundedOp) {
|
||||
dest->PopClip();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EffectTypes::RGB: {
|
||||
|
|
Загрузка…
Ссылка в новой задаче