| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "skia/ext/platform_canvas.h" | |
| 6 | |
| 7 #include "skia/ext/bitmap_platform_device.h" | |
| 8 #include "third_party/skia/include/core/SkTypes.h" | |
| 9 | |
| 10 namespace skia { | |
| 11 | |
| 12 SkBaseDevice* GetTopDevice(const SkCanvas& canvas) { | |
| 13 return canvas.getTopDevice(true); | |
| 14 } | |
| 15 | |
| 16 bool SupportsPlatformPaint(const SkCanvas* canvas) { | |
| 17 PlatformDevice* platform_device = GetPlatformDevice(GetTopDevice(*canvas)); | |
| 18 return platform_device && platform_device->SupportsPlatformPaint(); | |
| 19 } | |
| 20 | |
| 21 PlatformSurface BeginPlatformPaint(SkCanvas* canvas) { | |
| 22 PlatformDevice* platform_device = GetPlatformDevice(GetTopDevice(*canvas)); | |
| 23 if (platform_device) | |
| 24 return platform_device->BeginPlatformPaint(); | |
| 25 | |
| 26 return 0; | |
| 27 } | |
| 28 | |
| 29 void EndPlatformPaint(SkCanvas* canvas) { | |
| 30 PlatformDevice* platform_device = GetPlatformDevice(GetTopDevice(*canvas)); | |
| 31 if (platform_device) | |
| 32 platform_device->EndPlatformPaint(); | |
| 33 } | |
| 34 | |
| 35 void MakeOpaque(SkCanvas* canvas, int x, int y, int width, int height) { | |
| 36 if (width <= 0 || height <= 0) | |
| 37 return; | |
| 38 | |
| 39 SkRect rect; | |
| 40 rect.setXYWH(SkIntToScalar(x), SkIntToScalar(y), | |
| 41 SkIntToScalar(width), SkIntToScalar(height)); | |
| 42 SkPaint paint; | |
| 43 paint.setColor(SK_ColorBLACK); | |
| 44 paint.setXfermodeMode(SkXfermode::kDstATop_Mode); | |
| 45 canvas->drawRect(rect, paint); | |
| 46 } | |
| 47 | |
| 48 size_t PlatformCanvasStrideForWidth(unsigned width) { | |
| 49 return 4 * width; | |
| 50 } | |
| 51 | |
| 52 SkCanvas* CreateCanvas(const skia::RefPtr<SkBaseDevice>& device, OnFailureType f
ailureType) { | |
| 53 if (!device) { | |
| 54 if (CRASH_ON_FAILURE == failureType) | |
| 55 SK_CRASH(); | |
| 56 return NULL; | |
| 57 } | |
| 58 return new SkCanvas(device.get()); | |
| 59 } | |
| 60 | |
| 61 PlatformBitmap::PlatformBitmap() : surface_(0), platform_extra_(0) {} | |
| 62 | |
| 63 } // namespace skia | |
| OLD | NEW |