diff options
Diffstat (limited to 'ui/gfx/transform.cc')
-rw-r--r-- | ui/gfx/transform.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc index 55edb4c..03e2873 100644 --- a/ui/gfx/transform.cc +++ b/ui/gfx/transform.cc @@ -95,8 +95,19 @@ bool Transform::TransformRect(gfx::Rect* rect) { SkRect src = gfx::RectToSkRect(*rect); if (!matrix_.mapRect(&src)) return false; - gfx::Rect xrect = gfx::SkRectToRect(src); - rect->SetRect(xrect.x(), xrect.y(), xrect.width(), xrect.height()); + *rect = gfx::SkRectToRect(src); + return true; +} + +bool Transform::TransformRectReverse(gfx::Rect* rect) { + SkMatrix inverse; + if (!matrix_.invert(&inverse)) + return false; + + SkRect src = gfx::RectToSkRect(*rect); + if (!inverse.mapRect(&src)) + return false; + *rect = gfx::SkRectToRect(src); return true; } |