summaryrefslogtreecommitdiffstats
path: root/skia/ext
diff options
context:
space:
mode:
Diffstat (limited to 'skia/ext')
-rw-r--r--skia/ext/platform_canvas_skia.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/skia/ext/platform_canvas_skia.cc b/skia/ext/platform_canvas_skia.cc
new file mode 100644
index 0000000..8551792
--- /dev/null
+++ b/skia/ext/platform_canvas_skia.cc
@@ -0,0 +1,41 @@
+// Copyright (c) 2012 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_canvas.h"
+
+#include "base/debug/trace_event.h"
+#include "skia/ext/bitmap_platform_device.h"
+
+namespace skia {
+
+PlatformCanvas::PlatformCanvas(int width, int height, bool is_opaque) {
+ TRACE_EVENT2("skia", "PlatformCanvas::PlatformCanvas",
+ "width", width, "height", height);
+ if (!initialize(width, height, is_opaque))
+ SK_CRASH();
+}
+
+PlatformCanvas::PlatformCanvas(int width, int height, bool is_opaque,
+ uint8_t* data) {
+ TRACE_EVENT2("skia", "PlatformCanvas::PlatformCanvas",
+ "width", width, "height", height);
+ if (!initialize(width, height, is_opaque, data))
+ SK_CRASH();
+}
+
+PlatformCanvas::~PlatformCanvas() {
+}
+
+bool PlatformCanvas::initialize(int width, int height, bool is_opaque,
+ uint8_t* data) {
+ // Use platform specific device for data.
+ if (data)
+ return initializeWithDevice(BitmapPlatformDevice::Create(
+ width, height, is_opaque, data));
+
+ return initializeWithDevice(new SkDevice(
+ SkBitmap::kARGB_8888_Config, width, height, is_opaque));
+}
+
+} // namespace skia