зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1059033 - Part 6: Clip text drawing to its bound so we can skip unaffected tiles. r=Bas
This commit is contained in:
Родитель
9eb54ea973
Коммит
98c3f2d992
|
@ -4565,8 +4565,18 @@ nsDisplayText::Paint(nsDisplayListBuilder* aBuilder,
|
||||||
extraVisible.Inflate(appUnitsPerDevPixel, appUnitsPerDevPixel);
|
extraVisible.Inflate(appUnitsPerDevPixel, appUnitsPerDevPixel);
|
||||||
nsTextFrame* f = static_cast<nsTextFrame*>(mFrame);
|
nsTextFrame* f = static_cast<nsTextFrame*>(mFrame);
|
||||||
|
|
||||||
gfxContextAutoDisableSubpixelAntialiasing disable(aCtx->ThebesContext(),
|
gfxContext* ctx = aCtx->ThebesContext();
|
||||||
|
gfxContextAutoDisableSubpixelAntialiasing disable(ctx,
|
||||||
mDisableSubpixelAA);
|
mDisableSubpixelAA);
|
||||||
|
gfxContextAutoSaveRestore save(ctx);
|
||||||
|
|
||||||
|
gfxRect pixelVisible =
|
||||||
|
nsLayoutUtils::RectToGfxRect(extraVisible, appUnitsPerDevPixel);
|
||||||
|
|
||||||
|
ctx->NewPath();
|
||||||
|
ctx->Rectangle(pixelVisible);
|
||||||
|
ctx->Clip();
|
||||||
|
|
||||||
NS_ASSERTION(mLeftEdge >= 0, "illegal left edge");
|
NS_ASSERTION(mLeftEdge >= 0, "illegal left edge");
|
||||||
NS_ASSERTION(mRightEdge >= 0, "illegal right edge");
|
NS_ASSERTION(mRightEdge >= 0, "illegal right edge");
|
||||||
f->PaintText(aCtx, ToReferenceFrame(), extraVisible, *this);
|
f->PaintText(aCtx, ToReferenceFrame(), extraVisible, *this);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче