Index: ui/gfx/skia_util.cc |
diff --git a/ui/gfx/skia_util.cc b/ui/gfx/skia_util.cc |
index 162a5ba6bf25f35af7ae53da4c83b92f8e22efc0..50092ab13b6d1cace96df9e0af6eff2379d27bf0 100644 |
--- a/ui/gfx/skia_util.cc |
+++ b/ui/gfx/skia_util.cc |
@@ -15,6 +15,7 @@ |
#include "ui/gfx/rect.h" |
#include "ui/gfx/rect_f.h" |
#include "ui/gfx/shadow_value.h" |
+#include "ui/gfx/transform.h" |
namespace gfx { |
@@ -46,6 +47,19 @@ RectF SkRectToRectF(const SkRect& rect) { |
SkScalarToFloat(rect.height())); |
} |
+void TransformToFlattenedSkMatrix(const gfx::Transform& transform, |
+ SkMatrix* flattened) { |
+ // Convert from 4x4 to 3x3 by dropping the third row and column. |
+ flattened->set(0, SkDoubleToScalar(transform.matrix().getDouble(0, 0))); |
+ flattened->set(1, SkDoubleToScalar(transform.matrix().getDouble(0, 1))); |
+ flattened->set(2, SkDoubleToScalar(transform.matrix().getDouble(0, 3))); |
+ flattened->set(3, SkDoubleToScalar(transform.matrix().getDouble(1, 0))); |
+ flattened->set(4, SkDoubleToScalar(transform.matrix().getDouble(1, 1))); |
+ flattened->set(5, SkDoubleToScalar(transform.matrix().getDouble(1, 3))); |
+ flattened->set(6, SkDoubleToScalar(transform.matrix().getDouble(3, 0))); |
+ flattened->set(7, SkDoubleToScalar(transform.matrix().getDouble(3, 1))); |
+ flattened->set(8, SkDoubleToScalar(transform.matrix().getDouble(3, 3))); |
+} |
skia::RefPtr<SkShader> CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, |
SkShader::TileMode tile_mode, |