summaryrefslogtreecommitdiffstats
path: root/skia/ext/platform_device_mac.cc
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 16:16:02 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 16:16:02 +0000
commitf2d4c672b6d6b80e376cff979b1ec28864b73fb6 (patch)
tree679a4a8178438947f2775a6d1ba5540be99ce00c /skia/ext/platform_device_mac.cc
parent49578ea329dae7f711ca1cde1ecade01e19a4f1b (diff)
downloadchromium_src-f2d4c672b6d6b80e376cff979b1ec28864b73fb6.zip
chromium_src-f2d4c672b6d6b80e376cff979b1ec28864b73fb6.tar.gz
chromium_src-f2d4c672b6d6b80e376cff979b1ec28864b73fb6.tar.bz2
Revert 86625 - This change implements a first pass in the effort to remove the dependency of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends.
A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/7019013 TBR=twiz@chromium.org Review URL: http://codereview.chromium.org/6987019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86629 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ext/platform_device_mac.cc')
-rw-r--r--skia/ext/platform_device_mac.cc26
1 files changed, 18 insertions, 8 deletions
diff --git a/skia/ext/platform_device_mac.cc b/skia/ext/platform_device_mac.cc
index da66dbe..73e814e 100644
--- a/skia/ext/platform_device_mac.cc
+++ b/skia/ext/platform_device_mac.cc
@@ -2,8 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "skia/ext/platform_device.h"
-#include "skia/ext/bitmap_platform_device.h"
+#include "skia/ext/bitmap_platform_device_mac.h"
#import <ApplicationServices/ApplicationServices.h>
#include "skia/ext/skia_utils_mac.h"
@@ -14,17 +13,28 @@
namespace skia {
-CGContextRef GetBitmapContext(SkDevice* device) {
- PlatformDevice* platform_device = GetPlatformDevice(device);
- if (platform_device)
- return platform_device->GetBitmapContext();
+namespace {
- return NULL;
+// Constrains position and size to fit within available_size.
+bool constrain(int available_size, int* position, int *size) {
+ if (*position < 0) {
+ *size += *position;
+ *position = 0;
+ }
+ if (*size > 0 && *position < available_size) {
+ int overflow = (*position + *size) - available_size;
+ if (overflow > 0) {
+ *size -= overflow;
+ }
+ return true;
+ }
+ return false;
}
+} // namespace
+
PlatformDevice::PlatformDevice(const SkBitmap& bitmap)
: SkDevice(NULL, bitmap, /*isForLayer=*/false) {
- SetPlatformDevice(this, this);
}
bool PlatformDevice::IsNativeFontRenderingAllowed() {