| Index: skia/ext/platform_canvas.cc
|
| diff --git a/skia/ext/platform_canvas.cc b/skia/ext/platform_canvas.cc
|
| index cf362b3ce3a3f95fad61c51db39d9b355db93514..0df64962bbcc7938e6bf04e67b0b6982418479f9 100644
|
| --- a/skia/ext/platform_canvas.cc
|
| +++ b/skia/ext/platform_canvas.cc
|
| @@ -4,9 +4,33 @@
|
|
|
| #include "skia/ext/platform_canvas.h"
|
|
|
| +#include "base/logging.h"
|
| #include "skia/ext/bitmap_platform_device.h"
|
| +#include "skia/ext/platform_device.h"
|
| +#include "third_party/skia/include/core/SkMetaData.h"
|
| #include "third_party/skia/include/core/SkTypes.h"
|
|
|
| +namespace {
|
| +
|
| +#if defined(OS_MACOSX)
|
| +const char kIsPreviewMetafileKey[] = "CrIsPreviewMetafile";
|
| +#endif
|
| +
|
| +void SetBoolMetaData(const SkCanvas& canvas, const char* key, bool value) {
|
| + SkMetaData& meta = skia::GetMetaData(canvas);
|
| + meta.setBool(key, value);
|
| +}
|
| +
|
| +bool GetBoolMetaData(const SkCanvas& canvas, const char* key) {
|
| + bool value;
|
| + SkMetaData& meta = skia::GetMetaData(canvas);
|
| + if (!meta.findBool(key, &value))
|
| + value = false;
|
| + return value;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| namespace skia {
|
|
|
| SkBaseDevice* GetTopDevice(const SkCanvas& canvas) {
|
| @@ -77,9 +101,34 @@ SkCanvas* CreateCanvas(const skia::RefPtr<SkBaseDevice>& device, OnFailureType f
|
| if (!device) {
|
| if (CRASH_ON_FAILURE == failureType)
|
| SK_CRASH();
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| return new SkCanvas(device.get());
|
| }
|
|
|
| +SkMetaData& GetMetaData(const SkCanvas& canvas) {
|
| + SkBaseDevice* device = canvas.getDevice();
|
| + DCHECK(device != nullptr);
|
| + return device->getMetaData();
|
| +}
|
| +
|
| +#if defined(OS_MACOSX)
|
| +void SetIsPreviewMetafile(const SkCanvas& canvas, bool is_preview) {
|
| + SetBoolMetaData(canvas, kIsPreviewMetafileKey, is_preview);
|
| +}
|
| +
|
| +bool IsPreviewMetafile(const SkCanvas& canvas) {
|
| + return GetBoolMetaData(canvas, kIsPreviewMetafileKey);
|
| +}
|
| +
|
| +CGContextRef GetBitmapContext(const SkCanvas& canvas) {
|
| + SkBaseDevice* device = GetTopDevice(canvas);
|
| + PlatformDevice* platform_device = GetPlatformDevice(device);
|
| + return platform_device ? platform_device->GetBitmapContext() :
|
| + nullptr;
|
| +}
|
| +
|
| +#endif
|
| +
|
| +
|
| } // namespace skia
|
|
|