OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkDevice.h" | 8 #include "SkDevice.h" |
9 #include "SkMetaData.h" | 9 #include "SkMetaData.h" |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 #endif | 35 #endif |
36 { | 36 { |
37 fOrigin.setZero(); | 37 fOrigin.setZero(); |
38 fMetaData = NULL; | 38 fMetaData = NULL; |
39 } | 39 } |
40 | 40 |
41 SkBaseDevice::~SkBaseDevice() { | 41 SkBaseDevice::~SkBaseDevice() { |
42 delete fMetaData; | 42 delete fMetaData; |
43 } | 43 } |
44 | 44 |
| 45 SkBaseDevice* SkBaseDevice::createCompatibleDevice(const SkImageInfo& info) { |
| 46 #ifdef SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG |
| 47 // We call the old method to support older subclasses. |
| 48 // If they have, we return their device, else we use the new impl. |
| 49 SkBitmap::Config config = SkColorTypeToBitmapConfig(info.colorType()); |
| 50 SkBaseDevice* dev = this->onCreateCompatibleDevice(config, |
| 51 info.width(), |
| 52 info.height(), |
| 53 info.isOpaque(), |
| 54 kGeneral_Usage); |
| 55 if (dev) { |
| 56 return dev; |
| 57 } |
| 58 // fall through to new impl |
| 59 #endif |
| 60 return this->onCreateDevice(info, kGeneral_Usage); |
| 61 } |
| 62 |
| 63 SkBaseDevice* SkBaseDevice::createCompatibleDeviceForSaveLayer(const SkImageInfo
& info) { |
| 64 #ifdef SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG |
| 65 // We call the old method to support older subclasses. |
| 66 // If they have, we return their device, else we use the new impl. |
| 67 SkBitmap::Config config = SkColorTypeToBitmapConfig(info.colorType()); |
| 68 SkBaseDevice* dev = this->onCreateCompatibleDevice(config, |
| 69 info.width(), |
| 70 info.height(), |
| 71 info.isOpaque(), |
| 72 kSaveLayer_Usage); |
| 73 if (dev) { |
| 74 return dev; |
| 75 } |
| 76 // fall through to new impl |
| 77 #endif |
| 78 return this->onCreateDevice(info, kSaveLayer_Usage); |
| 79 } |
| 80 |
| 81 #ifdef SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG |
45 SkBaseDevice* SkBaseDevice::createCompatibleDevice(SkBitmap::Config config, | 82 SkBaseDevice* SkBaseDevice::createCompatibleDevice(SkBitmap::Config config, |
46 int width, int height, | 83 int width, int height, |
47 bool isOpaque) { | 84 bool isOpaque) { |
48 return this->onCreateCompatibleDevice(config, width, height, | 85 SkImageInfo info = SkImageInfo::Make(width, height, |
49 isOpaque, kGeneral_Usage); | 86 SkBitmapConfigToColorType(config), |
| 87 isOpaque ? kOpaque_SkAlphaType |
| 88 : kPremul_SkAlphaType); |
| 89 return this->createCompatibleDevice(info); |
50 } | 90 } |
51 | 91 #endif |
52 SkBaseDevice* SkBaseDevice::createCompatibleDeviceForSaveLayer(SkBitmap::Config
config, | |
53 int width, int he
ight, | |
54 bool isOpaque) { | |
55 return this->onCreateCompatibleDevice(config, width, height, | |
56 isOpaque, kSaveLayer_Usage); | |
57 } | |
58 | 92 |
59 SkMetaData& SkBaseDevice::getMetaData() { | 93 SkMetaData& SkBaseDevice::getMetaData() { |
60 // metadata users are rare, so we lazily allocate it. If that changes we | 94 // metadata users are rare, so we lazily allocate it. If that changes we |
61 // can decide to just make it a field in the device (rather than a ptr) | 95 // can decide to just make it a field in the device (rather than a ptr) |
62 if (NULL == fMetaData) { | 96 if (NULL == fMetaData) { |
63 fMetaData = new SkMetaData; | 97 fMetaData = new SkMetaData; |
64 } | 98 } |
65 return *fMetaData; | 99 return *fMetaData; |
66 } | 100 } |
67 | 101 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 config8888); | 152 config8888); |
119 if (result && bmp == &tmp) { | 153 if (result && bmp == &tmp) { |
120 tmp.swap(*bitmap); | 154 tmp.swap(*bitmap); |
121 } | 155 } |
122 return result; | 156 return result; |
123 } | 157 } |
124 | 158 |
125 SkSurface* SkBaseDevice::newSurface(const SkImageInfo&) { return NULL; } | 159 SkSurface* SkBaseDevice::newSurface(const SkImageInfo&) { return NULL; } |
126 | 160 |
127 const void* SkBaseDevice::peekPixels(SkImageInfo*, size_t*) { return NULL; } | 161 const void* SkBaseDevice::peekPixels(SkImageInfo*, size_t*) { return NULL; } |
OLD | NEW |