Chromium Code Reviews| 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); |
| +} |
| + |
| + |