Index: skia/ext/platform_device.cc |
=================================================================== |
--- skia/ext/platform_device.cc (revision 0) |
+++ skia/ext/platform_device.cc (revision 0) |
@@ -0,0 +1,68 @@ |
+// Copyright (c) 2011 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/platform_device.h" |
+ |
+#include "third_party/skia/include/core/SkMetaData.h" |
+ |
+namespace skia { |
+ |
+namespace { |
+const char* kDevicePlatformBehaviour = "CrDevicePlatformBehaviour"; |
+} |
+ |
+void SetPlatformDevice(SkDevice* device, PlatformDevice* platform_behaviour) { |
+ SkMetaData& meta_data = device->getMetaData(); |
alokp
2011/05/19 18:15:15
This is still a bit confusing but OK for the first
Jeff Timanus
2011/05/19 20:38:29
The reason I place the meta-data here is so that a
alokp
2011/05/19 21:52:27
Yes. A PlatformData class would be perfect.
|
+ meta_data.setPtr(kDevicePlatformBehaviour, platform_behaviour); |
+} |
+ |
+PlatformDevice* GetPlatformDevice(SkDevice* device) { |
+ SkMetaData& meta_data = device->getMetaData(); |
+ PlatformDevice* device_behaviour = NULL; |
+ if (meta_data.findPtr(kDevicePlatformBehaviour, |
+ reinterpret_cast<void**>(&device_behaviour))) |
+ return device_behaviour; |
+ |
+ return NULL; |
+} |
+ |
+PlatformSurface BeginPlatformPaint(SkDevice* device) { |
+ PlatformDevice* platform_device = GetPlatformDevice(device); |
+ if (platform_device) |
+ return platform_device->BeginPlatformPaint(); |
+ |
+ return 0; |
+} |
+ |
+void EndPlatformPaint(SkDevice* device) { |
+ PlatformDevice* platform_device = GetPlatformDevice(device); |
+ if (platform_device) |
+ return platform_device->EndPlatformPaint(); |
+} |
+ |
+bool IsVectorial(SkDevice* device) { |
+ PlatformDevice* platform_device = GetPlatformDevice(device); |
+ if (platform_device) |
+ return platform_device->IsVectorial(); |
+ |
+ return device->getDeviceCapabilities() & SkDevice::kVector_Capability; |
+} |
+ |
+bool IsNativeFontRenderingAllowed(SkDevice* device) { |
+ PlatformDevice* platform_device = GetPlatformDevice(device); |
+ if (platform_device) |
+ return platform_device->IsNativeFontRenderingAllowed(); |
+ |
+ return false; |
+} |
+ |
+void DrawToNativeContext(SkDevice* device, PlatformSurface context, |
+ int x, int y, const PlatformRect* src_rect) { |
+ PlatformDevice* platform_device = GetPlatformDevice(device); |
+ if (platform_device) |
+ platform_device->DrawToNativeContext(context, x, y, src_rect); |
+} |
+ |
+} // namespace skia |
+ |
Property changes on: skia\ext\platform_device.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |