summaryrefslogtreecommitdiffstats
path: root/skia/ext
diff options
context:
space:
mode:
authorbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-03 20:26:51 +0000
committerbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-03 20:26:51 +0000
commit24a14e8415f49c0aa2d7f1d0debc6faf2e3d7d20 (patch)
tree6584e9b579451f10e9cf7730bebe7919b36fc380 /skia/ext
parente6430507f70668ac76560d532ed9515525bd41ae (diff)
downloadchromium_src-24a14e8415f49c0aa2d7f1d0debc6faf2e3d7d20.zip
chromium_src-24a14e8415f49c0aa2d7f1d0debc6faf2e3d7d20.tar.gz
chromium_src-24a14e8415f49c0aa2d7f1d0debc6faf2e3d7d20.tar.bz2
Move skia_utils_mac from base/gfx to skia/ext.
Review URL: http://codereview.chromium.org/12911 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6302 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ext')
-rwxr-xr-xskia/ext/bitmap_platform_device_mac.cc2
-rwxr-xr-xskia/ext/platform_device_mac.cc2
-rw-r--r--skia/ext/skia_utils_mac.cc83
-rw-r--r--skia/ext/skia_utils_mac.h51
4 files changed, 136 insertions, 2 deletions
diff --git a/skia/ext/bitmap_platform_device_mac.cc b/skia/ext/bitmap_platform_device_mac.cc
index d4458d7..52ce586 100755
--- a/skia/ext/bitmap_platform_device_mac.cc
+++ b/skia/ext/bitmap_platform_device_mac.cc
@@ -10,8 +10,8 @@
#include "SkRegion.h"
#include "SkUtils.h"
-#include "base/gfx/skia_utils_mac.h"
#include "base/logging.h"
+#include "skia/ext/skia_utils_mac.h"
namespace gfx {
diff --git a/skia/ext/platform_device_mac.cc b/skia/ext/platform_device_mac.cc
index 9539e0f..3cc6fb4 100755
--- a/skia/ext/platform_device_mac.cc
+++ b/skia/ext/platform_device_mac.cc
@@ -5,7 +5,7 @@
#include "skia/ext/bitmap_platform_device_mac.h"
#include "base/logging.h"
-#include "base/gfx/skia_utils_mac.h"
+#include "skia/ext/skia_utils_mac.h"
#include "SkMatrix.h"
#include "SkPath.h"
#include "SkUtils.h"
diff --git a/skia/ext/skia_utils_mac.cc b/skia/ext/skia_utils_mac.cc
new file mode 100644
index 0000000..a7610aa
--- /dev/null
+++ b/skia/ext/skia_utils_mac.cc
@@ -0,0 +1,83 @@
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "skia/ext/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),
+ SkScalarRound(rect.origin.y),
+ SkScalarRound(rect.origin.x + rect.size.width),
+ SkScalarRound(rect.origin.y + rect.size.height)
+ };
+ return sk_rect;
+}
+
+SkRect CGRectToSkRect(const CGRect& rect) {
+ SkRect sk_rect = {
+ rect.origin.x,
+ rect.origin.y,
+ rect.origin.x + rect.size.width,
+ rect.origin.y + rect.size.height,
+ };
+ return sk_rect;
+}
+
+CGRect SkIRectToCGRect(const SkIRect& rect) {
+ CGRect cg_rect = {
+ { rect.fLeft, rect.fTop },
+ { rect.fRight - rect.fLeft, rect.fBottom - rect.fTop }
+ };
+ return cg_rect;
+}
+
+CGRect SkRectToCGRect(const SkRect& rect) {
+ CGRect cg_rect = {
+ { rect.fLeft, rect.fTop },
+ { rect.fRight - rect.fLeft, rect.fBottom - rect.fTop }
+ };
+ return cg_rect;
+}
+
+// Converts CGColorRef to the ARGB layout Skia expects.
+SkColor CGColorRefToSkColor(CGColorRef color) {
+ DCHECK(CGColorGetNumberOfComponents(color) == 4);
+ const CGFloat *components = CGColorGetComponents(color);
+ return SkColorSetARGB(SkScalarRound(255.0 * components[3]), // alpha
+ SkScalarRound(255.0 * components[0]), // red
+ SkScalarRound(255.0 * components[1]), // green
+ SkScalarRound(255.0 * components[2])); // blue
+}
+
+// Converts ARGB to CGColorRef.
+CGColorRef SkColorToCGColorRef(SkColor color) {
+ return CGColorCreateGenericRGB(SkColorGetR(color) / 255.0,
+ SkColorGetG(color) / 255.0,
+ SkColorGetB(color) / 255.0,
+ SkColorGetA(color) / 255.0);
+}
+
+} // namespace gfx
+
diff --git a/skia/ext/skia_utils_mac.h b/skia/ext/skia_utils_mac.h
new file mode 100644
index 0000000..c43f6eb
--- /dev/null
+++ b/skia/ext/skia_utils_mac.h
@@ -0,0 +1,51 @@
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+#ifndef SKIA_EXT_SKIA_UTILS_MAC_H_
+#define SKIA_EXT_SKIA_UTILS_MAC_H_
+
+#include "SkColor.h"
+#include <CoreGraphics/CGColor.h>
+
+struct SkMatrix;
+struct SkIRect;
+struct SkPoint;
+struct SkRect;
+
+namespace gfx {
+
+// Converts a Skia point to a CoreGraphics CGPoint.
+// Both use same in-memory format.
+inline const CGPoint& SkPointToCGPoint(const SkPoint& point) {
+ return reinterpret_cast<const CGPoint&>(point);
+}
+
+// Converts a CoreGraphics point to a Skia CGPoint.
+// Both use same in-memory format.
+inline const SkPoint& CGPointToSkPoint(const CGPoint& point) {
+ return reinterpret_cast<const SkPoint&>(point);
+}
+
+// Matrix converters.
+CGAffineTransform SkMatrixToCGAffineTransform(const SkMatrix& matrix);
+
+// Rectangle converters.
+SkRect CGRectToSkRect(const CGRect& rect);
+SkIRect CGRectToSkIRect(const CGRect& rect);
+
+// Converts a Skia rect to a CoreGraphics CGRect.
+CGRect SkIRectToCGRect(const SkIRect& rect);
+CGRect SkRectToCGRect(const SkRect& rect);
+
+// Converts CGColorRef to the ARGB layout Skia expects.
+SkColor CGColorRefToSkColor(CGColorRef color);
+
+// Converts ARGB to CGColorRef.
+CGColorRef SkColorToCGColorRef(SkColor color);
+
+} // namespace gfx
+
+#endif // SKIA_EXT_SKIA_UTILS_MAC_H_
+