Index: ui/gfx/transform.cc |
diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc |
index d335166779f4b2bac3e9fe3104a97669640403af..55edb4c3f47a782ec1adef0bfcf4cb4187780ef4 100644 |
--- a/ui/gfx/transform.cc |
+++ b/ui/gfx/transform.cc |
@@ -4,6 +4,8 @@ |
#include "ui/gfx/transform.h" |
+#include <cmath> |
+ |
#include "ui/gfx/point.h" |
#include "ui/gfx/rect.h" |
#include "ui/gfx/skia_util.h" |
@@ -71,7 +73,8 @@ bool Transform::HasChange() const { |
bool Transform::TransformPoint(gfx::Point* point) { |
SkPoint skp; |
matrix_.mapXY(SkIntToScalar(point->x()), SkIntToScalar(point->y()), &skp); |
- point->SetPoint(static_cast<int>(skp.fX), static_cast<int>(skp.fY)); |
+ point->SetPoint(static_cast<int>(std::floor(skp.fX)), |
+ static_cast<int>(std::floor(skp.fY))); |
wjmaclean
2011/05/24 12:11:40
Just curious ... for positive values, wouldn't thi
sky
2011/05/24 15:51:49
I'm sure we'll have rounding problems until we use
|
return true; |
} |
@@ -81,7 +84,8 @@ bool Transform::TransformPointReverse(gfx::Point* point) { |
if (matrix_.invert(&inverse)) { |
SkPoint skp; |
inverse.mapXY(SkIntToScalar(point->x()), SkIntToScalar(point->y()), &skp); |
- point->SetPoint(static_cast<int>(skp.fX), static_cast<int>(skp.fY)); |
+ point->SetPoint(static_cast<int>(std::floor(skp.fX)), |
+ static_cast<int>(std::floor(skp.fY))); |
return true; |
} |
return false; |