| Index: src/core/SkCanvas.cpp
|
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
|
| index e53a104c47fa28406f1d440dbcd670365d877a24..0bea28288394821e099f8bc4b5c61029bd7422f9 100644
|
| --- a/src/core/SkCanvas.cpp
|
| +++ b/src/core/SkCanvas.cpp
|
| @@ -752,6 +752,17 @@ SkCanvas::SkCanvas(SkBaseDevice* device)
|
| this->init(device, kDefault_InitFlags);
|
| }
|
|
|
| +SkCanvas::SkCanvas(SkBaseDevice* device, SkRasterCanvasLayerAllocator* allocator)
|
| + : fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage))
|
| + , fProps(device->surfaceProps())
|
| + , fConservativeRasterClip(false)
|
| + , fLayerAllocator(allocator)
|
| +{
|
| + inc_canvas();
|
| +
|
| + this->init(device, kDefault_InitFlags);
|
| +}
|
| +
|
| SkCanvas::SkCanvas(SkBaseDevice* device, InitFlags flags)
|
| : fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage))
|
| , fProps(device->surfaceProps())
|
| @@ -1266,7 +1277,7 @@ void SkCanvas::internalSaveLayer(const SaveLayerRec& rec, SaveLayerStrategy stra
|
| const SkBaseDevice::TileUsage usage = SkBaseDevice::kNever_TileUsage;
|
| const SkBaseDevice::CreateInfo createInfo = SkBaseDevice::CreateInfo(info, usage, geo,
|
| preserveLCDText);
|
| - newDevice.reset(priorDevice->onCreateDevice(createInfo, paint));
|
| + newDevice.reset(priorDevice->onCreateDevice(createInfo, paint, fLayerAllocator.get()));
|
| if (!newDevice) {
|
| SkErrorInternals::SetError(kInternalError_SkError,
|
| "Unable to create device for layer.");
|
|
|