зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1035330 - Optimize rects in the gfxContext methods for getting extents to fix tsvgr_opacity regressions. r=Bas
This commit is contained in:
Родитель
00f24f9055
Коммит
08bd4915a7
|
@ -1769,6 +1769,9 @@ gfxContext::GetUserPathExtent()
|
|||
cairo_path_extents(mCairo, &xmin, &ymin, &xmax, &ymax);
|
||||
return gfxRect(xmin, ymin, xmax - xmin, ymax - ymin);
|
||||
} else {
|
||||
if (mPathIsRect) {
|
||||
return ThebesRect(mTransform.TransformBounds(mRect));
|
||||
}
|
||||
EnsurePath();
|
||||
return ThebesRect(mPath->GetBounds());
|
||||
}
|
||||
|
@ -1782,6 +1785,9 @@ gfxContext::GetUserFillExtent()
|
|||
cairo_fill_extents(mCairo, &xmin, &ymin, &xmax, &ymax);
|
||||
return gfxRect(xmin, ymin, xmax - xmin, ymax - ymin);
|
||||
} else {
|
||||
if (mPathIsRect) {
|
||||
return ThebesRect(mTransform.TransformBounds(mRect));
|
||||
}
|
||||
EnsurePath();
|
||||
return ThebesRect(mPath->GetBounds());
|
||||
}
|
||||
|
@ -1795,6 +1801,11 @@ gfxContext::GetUserStrokeExtent()
|
|||
cairo_stroke_extents(mCairo, &xmin, &ymin, &xmax, &ymax);
|
||||
return gfxRect(xmin, ymin, xmax - xmin, ymax - ymin);
|
||||
} else {
|
||||
if (mPathIsRect) {
|
||||
Rect rect = mRect;
|
||||
rect.Inflate(CurrentState().strokeOptions.mLineWidth / 2);
|
||||
return ThebesRect(mTransform.TransformBounds(rect));
|
||||
}
|
||||
EnsurePath();
|
||||
return ThebesRect(mPath->GetStrokedBounds(CurrentState().strokeOptions, mTransform));
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче