diff options
author | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-03 20:26:51 +0000 |
---|---|---|
committer | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-03 20:26:51 +0000 |
commit | 24a14e8415f49c0aa2d7f1d0debc6faf2e3d7d20 (patch) | |
tree | 6584e9b579451f10e9cf7730bebe7919b36fc380 /skia | |
parent | e6430507f70668ac76560d532ed9515525bd41ae (diff) | |
download | chromium_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')
-rwxr-xr-x | skia/ext/bitmap_platform_device_mac.cc | 2 | ||||
-rwxr-xr-x | skia/ext/platform_device_mac.cc | 2 | ||||
-rw-r--r-- | skia/ext/skia_utils_mac.cc | 83 | ||||
-rw-r--r-- | skia/ext/skia_utils_mac.h | 51 | ||||
-rw-r--r-- | skia/skia.xcodeproj/project.pbxproj | 10 |
5 files changed, 144 insertions, 4 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_ + diff --git a/skia/skia.xcodeproj/project.pbxproj b/skia/skia.xcodeproj/project.pbxproj index 67404c5..6e3f25e 100644 --- a/skia/skia.xcodeproj/project.pbxproj +++ b/skia/skia.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 7B4DF47E0E5B5FE0004D7619 /* SkNinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B4DF47D0E5B5FE0004D7619 /* SkNinePatch.cpp */; }; 7B4DF4800E5B6005004D7619 /* SkScaledBitmapSampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B4DF47F0E5B6005004D7619 /* SkScaledBitmapSampler.cpp */; }; 7B4DF48A0E5B609B004D7619 /* SkTypeface_fake.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B4DF4820E5B6087004D7619 /* SkTypeface_fake.cpp */; }; + A708CBA30EE7078500C531EA /* skia_utils_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A708CBA10EE7078500C531EA /* skia_utils_mac.cc */; }; A70A3BAE0ED7385F00C31871 /* bitmap_platform_device_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BA80ED7385F00C31871 /* bitmap_platform_device_mac.cc */; }; A70A3BAF0ED7385F00C31871 /* platform_canvas_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BAA0ED7385F00C31871 /* platform_canvas_mac.cc */; }; A70A3BB00ED7385F00C31871 /* platform_device_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BAC0ED7385F00C31871 /* platform_device_mac.cc */; }; @@ -149,6 +150,8 @@ 7B4DF47F0E5B6005004D7619 /* SkScaledBitmapSampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SkScaledBitmapSampler.cpp; sourceTree = "<group>"; }; 7B4DF4810E5B6087004D7619 /* SkDrawProcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkDrawProcs.h; sourceTree = "<group>"; }; 7B4DF4820E5B6087004D7619 /* SkTypeface_fake.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SkTypeface_fake.cpp; sourceTree = "<group>"; }; + A708CBA10EE7078500C531EA /* skia_utils_mac.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = skia_utils_mac.cc; path = ext/skia_utils_mac.cc; sourceTree = "<group>"; }; + A708CBA20EE7078500C531EA /* skia_utils_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = skia_utils_mac.h; path = ext/skia_utils_mac.h; sourceTree = "<group>"; }; A70A3BA80ED7385F00C31871 /* bitmap_platform_device_mac.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bitmap_platform_device_mac.cc; path = ext/bitmap_platform_device_mac.cc; sourceTree = "<group>"; }; A70A3BA90ED7385F00C31871 /* bitmap_platform_device_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bitmap_platform_device_mac.h; path = ext/bitmap_platform_device_mac.h; sourceTree = "<group>"; }; A70A3BAA0ED7385F00C31871 /* platform_canvas_mac.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = platform_canvas_mac.cc; path = ext/platform_canvas_mac.cc; sourceTree = "<group>"; }; @@ -500,6 +503,8 @@ A70A3BAB0ED7385F00C31871 /* platform_canvas_mac.h */, A70A3BAC0ED7385F00C31871 /* platform_device_mac.cc */, A70A3BAD0ED7385F00C31871 /* platform_device_mac.h */, + A708CBA10EE7078500C531EA /* skia_utils_mac.cc */, + A708CBA20EE7078500C531EA /* skia_utils_mac.h */, ); name = ext; sourceTree = "<group>"; @@ -926,6 +931,8 @@ buildActionMask = 2147483647; files = ( A70A3BAE0ED7385F00C31871 /* bitmap_platform_device_mac.cc in Sources */, + A74368B90EE61BBF003562CC /* convolver.cc in Sources */, + A74368BA0EE61BBF003562CC /* image_operations.cc in Sources */, A70A3BAF0ED7385F00C31871 /* platform_canvas_mac.cc in Sources */, A70A3BB00ED7385F00C31871 /* platform_device_mac.cc in Sources */, E48EE4D20E34E873009DE966 /* Sk1DPathEffect.cpp in Sources */, @@ -985,6 +992,7 @@ E48EE5060E34E873009DE966 /* SkGlyphCache.cpp in Sources */, E48EE5070E34E873009DE966 /* SkGradientShader.cpp in Sources */, E48EE5080E34E873009DE966 /* SkGraphics.cpp in Sources */, + A708CBA30EE7078500C531EA /* skia_utils_mac.cc in Sources */, E48EE5090E34E873009DE966 /* SkImageDecoder.cpp in Sources */, E48EE50A0E34E873009DE966 /* SkImageDecoder_Factory.cpp in Sources */, E48EE50B0E34E873009DE966 /* SkImageRef.cpp in Sources */, @@ -1045,8 +1053,6 @@ E48EE5380E34E873009DE966 /* SkUtils.cpp in Sources */, E48EE5390E34E873009DE966 /* SkWriter32.cpp in Sources */, E48EE53A0E34E873009DE966 /* SkXfermode.cpp in Sources */, - A74368B90EE61BBF003562CC /* convolver.cc in Sources */, - A74368BA0EE61BBF003562CC /* image_operations.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; |