summaryrefslogtreecommitdiffstats
path: root/base/gfx/skia_utils_mac.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/gfx/skia_utils_mac.cc')
-rw-r--r--base/gfx/skia_utils_mac.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/base/gfx/skia_utils_mac.cc b/base/gfx/skia_utils_mac.cc
index d9ccb3f..b5962c3 100644
--- a/base/gfx/skia_utils_mac.cc
+++ b/base/gfx/skia_utils_mac.cc
@@ -5,10 +5,26 @@
#include "base/gfx/skia_utils_mac.h"
#include "base/logging.h"
+#include "SkMatrix.h"
#include "SkRect.h"
namespace gfx {
+CGAffineTransform SkMatrixToCGAffineTransform(const SkMatrix& matrix) {
+ // CGAffineTransforms don't support perspective transforms, so make sure
+ // we don't get those.
+ DCHECK(matrix[SkMatrix::kMPersp0] == 0.0f);
+ DCHECK(matrix[SkMatrix::kMPersp1] == 0.0f);
+ DCHECK(matrix[SkMatrix::kMPersp2] == 1.0f);
+
+ return CGAffineTransformMake(matrix[SkMatrix::kMScaleX],
+ matrix[SkMatrix::kMSkewY],
+ matrix[SkMatrix::kMSkewX],
+ matrix[SkMatrix::kMScaleY],
+ matrix[SkMatrix::kMTransX],
+ matrix[SkMatrix::kMTransY]);
+}
+
SkIRect CGRectToSkIRect(const CGRect& rect) {
SkIRect sk_rect = {
SkScalarRound(rect.origin.x),