Index: src/core/SkRasterCanvasLayerAllocator.cpp |
diff --git a/src/core/SkRasterCanvasLayerAllocator.cpp b/src/core/SkRasterCanvasLayerAllocator.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9807adbb692ef153628f4ebd654e9a9a902a2e83 |
--- /dev/null |
+++ b/src/core/SkRasterCanvasLayerAllocator.cpp |
@@ -0,0 +1,31 @@ |
+/* |
+ * Copyright 2016 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "SkRasterCanvasLayerAllocator.h" |
+ |
+#include "SkBitmapDevice.h" |
+ |
+SkRasterCanvasLayerAllocator::SkRasterCanvasLayerAllocator() { } |
+ |
+SkRasterCanvasLayerAllocator::~SkRasterCanvasLayerAllocator() { } |
+ |
+SkCanvas* SkRasterCanvasLayerAllocator::CreateCanvas(const SkImageInfo& info, |
+ const SkSurfaceProps& props, |
+ void* initialData) { |
+ SkAutoTUnref<SkBaseDevice> newDevice; |
+ SkBitmap bitmap; |
+ size_t rowBytes; |
+ void* pixels = this->allocateLayer(info, &rowBytes, initialData); |
+ if (!pixels) { |
+ return nullptr; |
+ } |
+ bitmap.installPixels(info, pixels, rowBytes); |
+ SkBitmapDevice* device = new SkBitmapDevice(bitmap, props); |
reed1
2016/09/16 13:15:00
why do we allocate a device here?
|
+ return new SkCanvas(bitmap, this); |
+} |
+ |
+ |