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 |