| Index: skia/ext/platform_canvas_mac.cc
|
| diff --git a/skia/ext/platform_canvas_mac.cc b/skia/ext/platform_canvas_mac.cc
|
| index ba1549d6c6ff81a1937fd32ec8e324c5a565a2f6..4e42bb1d447f8ef1ee751d9a8a3fa2c955dd1d31 100644
|
| --- a/skia/ext/platform_canvas_mac.cc
|
| +++ b/skia/ext/platform_canvas_mac.cc
|
| @@ -2,118 +2,68 @@
|
| // 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_mac.h"
|
| +#include "skia/ext/platform_canvas.h"
|
|
|
| #include "skia/ext/bitmap_platform_device_mac.h"
|
| #include "third_party/skia/include/core/SkTypes.h"
|
|
|
| namespace skia {
|
|
|
| -PlatformCanvasMac::PlatformCanvasMac() : SkCanvas() {
|
| +PlatformCanvas::PlatformCanvas() : SkCanvas() {
|
| }
|
|
|
| -PlatformCanvasMac::PlatformCanvasMac(int width, int height, bool is_opaque)
|
| +PlatformCanvas::PlatformCanvas(int width, int height, bool is_opaque)
|
| : SkCanvas() {
|
| initialize(width, height, is_opaque);
|
| }
|
|
|
| -PlatformCanvasMac::PlatformCanvasMac(int width,
|
| - int height,
|
| - bool is_opaque,
|
| - CGContextRef context)
|
| +PlatformCanvas::PlatformCanvas(int width,
|
| + int height,
|
| + bool is_opaque,
|
| + CGContextRef context)
|
| : SkCanvas() {
|
| initialize(width, height, is_opaque);
|
| }
|
|
|
| -PlatformCanvasMac::PlatformCanvasMac(int width,
|
| - int height,
|
| - bool is_opaque,
|
| - uint8_t* data)
|
| +PlatformCanvas::PlatformCanvas(int width,
|
| + int height,
|
| + bool is_opaque,
|
| + uint8_t* data)
|
| : SkCanvas() {
|
| initialize(width, height, is_opaque, data);
|
| }
|
|
|
| -PlatformCanvasMac::~PlatformCanvasMac() {
|
| +PlatformCanvas::~PlatformCanvas() {
|
| }
|
|
|
| -bool PlatformCanvasMac::initialize(int width,
|
| - int height,
|
| - bool is_opaque) {
|
| - SkDevice* device = createPlatformDevice(width, height, is_opaque, NULL);
|
| +bool PlatformCanvas::initialize(int width,
|
| + int height,
|
| + bool is_opaque,
|
| + uint8_t* data) {
|
| + SkDevice* device = BitmapPlatformDevice::Create(NULL, width, height,
|
| + is_opaque);
|
| if (!device)
|
| return false;
|
|
|
| setDevice(device);
|
| - device->unref(); // was created with refcount 1, and setDevice also refs
|
| + device->unref(); // Was created with refcount 1, and setDevice also refs.
|
| return true;
|
| }
|
|
|
| -bool PlatformCanvasMac::initialize(int width,
|
| - int height,
|
| - bool is_opaque,
|
| - uint8_t* data) {
|
| - CGContextRef context = NULL;
|
| - CGColorSpaceRef colorSpace;
|
| -
|
| - colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
|
| - context = CGBitmapContextCreate(
|
| - data, width, height, 8 /* bits per plane */, 4 * width /* stride */,
|
| - colorSpace, kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host);
|
| - CGColorSpaceRelease(colorSpace);
|
| - if (!context)
|
| - return false;
|
| - // Change the coordinate system to match WebCore's
|
| - CGContextTranslateCTM(context, 0, height);
|
| - CGContextScaleCTM(context, 1.0, -1.0);
|
| -
|
| - SkDevice* device = createPlatformDevice(width, height, is_opaque, context);
|
| - if (!device)
|
| - return false;
|
| -
|
| - setDevice(device);
|
| - device->unref(); // was created with refcount 1, and setDevice also refs
|
| - return true;
|
| -}
|
| -
|
| -CGContextRef PlatformCanvasMac::beginPlatformPaint() {
|
| +CGContextRef PlatformCanvas::beginPlatformPaint() {
|
| return getTopPlatformDevice().GetBitmapContext();
|
| }
|
|
|
| -void PlatformCanvasMac::endPlatformPaint() {
|
| - // flushing will be done in onAccessBitmap
|
| -}
|
| -
|
| -PlatformDeviceMac& PlatformCanvasMac::getTopPlatformDevice() const {
|
| - // All of our devices should be our special PlatformDeviceMac.
|
| - SkCanvas::LayerIter iter(const_cast<PlatformCanvasMac*>(this), false);
|
| - return *static_cast<PlatformDeviceMac*>(iter.device());
|
| +void PlatformCanvas::endPlatformPaint() {
|
| + // Flushing will be done in onAccessBitmap.
|
| }
|
|
|
| -SkDevice* PlatformCanvasMac::createDevice(SkBitmap::Config config,
|
| - int width,
|
| - int height,
|
| - bool is_opaque, bool isForLayer) {
|
| +SkDevice* PlatformCanvas::createDevice(SkBitmap::Config config,
|
| + int width,
|
| + int height,
|
| + bool is_opaque, bool isForLayer) {
|
| SkASSERT(config == SkBitmap::kARGB_8888_Config);
|
| - return createPlatformDevice(width, height, is_opaque, NULL);
|
| -}
|
| -
|
| -SkDevice* PlatformCanvasMac::createPlatformDevice(int width,
|
| - int height,
|
| - bool is_opaque,
|
| - CGContextRef context) {
|
| - SkDevice* device = BitmapPlatformDeviceMac::Create(context, width, height,
|
| - is_opaque);
|
| - return device;
|
| -}
|
| -
|
| -SkDevice* PlatformCanvasMac::setBitmapDevice(const SkBitmap&) {
|
| - SkASSERT(false);
|
| - return NULL;
|
| -}
|
| -
|
| -// static
|
| -size_t PlatformCanvasMac::StrideForWidth(unsigned width) {
|
| - return 4 * width;
|
| + return BitmapPlatformDevice::Create(NULL, width, height, is_opaque);
|
| }
|
|
|
| } // namespace skia
|
|
|