Index: ui/gfx/transform.cc |
diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc |
index d34c9076f1d5d19a9403725fe059d444f55b1205..fe69a87658560a218c4067f4c89a8db919e0c684 100644 |
--- a/ui/gfx/transform.cc |
+++ b/ui/gfx/transform.cc |
@@ -6,6 +6,8 @@ |
#include "ui/gfx/point3_f.h" |
#include "ui/gfx/rect.h" |
+#include "ui/gfx/rect_f.h" |
+#include "ui/gfx/rect_conversions.h" |
#include "ui/gfx/safe_integer_conversions.h" |
#include "ui/gfx/skia_util.h" |
@@ -151,24 +153,36 @@ bool Transform::TransformPointReverse(Point3F& point) const { |
return true; |
} |
-void Transform::TransformRect(Rect* rect) const { |
- SkRect src = RectToSkRect(*rect); |
+void Transform::TransformRect(RectF* rect) const { |
+ SkRect src = RectFToSkRect(*rect); |
const SkMatrix& matrix = matrix_; |
matrix.mapRect(&src); |
- *rect = SkRectToRect(src); |
+ *rect = SkRectToRectF(src); |
+} |
+ |
+void Transform::TransformRect(Rect* rect) const { |
+ RectF rect_f = *rect; |
+ TransformRect(&rect_f); |
+ *rect = gfx::ToEnclosingRect(rect_f); |
} |
-bool Transform::TransformRectReverse(Rect* rect) const { |
+bool Transform::TransformRectReverse(RectF* rect) const { |
SkMatrix44 inverse; |
if (!matrix_.invert(&inverse)) |
return false; |
const SkMatrix& matrix = inverse; |
- SkRect src = RectToSkRect(*rect); |
+ SkRect src = RectFToSkRect(*rect); |
matrix.mapRect(&src); |
- *rect = SkRectToRect(src); |
+ *rect = SkRectToRectF(src); |
return true; |
} |
+void Transform::TransformRectReverse(Rect* rect) const { |
+ RectF rect_f = *rect; |
+ TransformRectReverse(&rect_f); |
+ *rect = gfx::ToEnclosingRect(rect_f); |
+} |
+ |
void Transform::TransformPointInternal(const SkMatrix44& xform, |
Point3F& point) const { |
SkScalar p[4] = { |