| Index: src/core/SkDevice.cpp
|
| diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp
|
| index 3d5000f5694ae97752cdf01ed70da33aa340aca5..c9afe67b02617dcc19d189127a7b608b069e31a7 100644
|
| --- a/src/core/SkDevice.cpp
|
| +++ b/src/core/SkDevice.cpp
|
| @@ -28,18 +28,6 @@ SkBaseDevice::~SkBaseDevice() {
|
| SkDELETE(fMetaData);
|
| }
|
|
|
| -SkBaseDevice* SkBaseDevice::createCompatibleDevice(const SkImageInfo& info) {
|
| - return this->onCreateDevice(info, kGeneral_Usage);
|
| -}
|
| -
|
| -SkBaseDevice* SkBaseDevice::createCompatibleDeviceForSaveLayer(const SkImageInfo& info) {
|
| - return this->onCreateDevice(info, kSaveLayer_Usage);
|
| -}
|
| -
|
| -SkBaseDevice* SkBaseDevice::createCompatibleDeviceForImageFilter(const SkImageInfo& info) {
|
| - return this->onCreateDevice(info, kImageFilter_Usage);
|
| -}
|
| -
|
| SkMetaData& SkBaseDevice::getMetaData() {
|
| // metadata users are rare, so we lazily allocate it. If that changes we
|
| // can decide to just make it a field in the device (rather than a ptr)
|
| @@ -65,6 +53,22 @@ void SkBaseDevice::setPixelGeometry(SkPixelGeometry geo) {
|
| fLeakyProperties->setPixelGeometry(geo);
|
| }
|
|
|
| +void SkBaseDevice::setup(SkPixelGeometry geo, Usage usage) {
|
| + switch (usage) {
|
| + case kGeneral_Usage:
|
| + break;
|
| + case kSaveLayer_Usage:
|
| + if (this->imageInfo().alphaType() != kOpaque_SkAlphaType) {
|
| + geo = kUnknown_SkPixelGeometry;
|
| + }
|
| + break;
|
| + case kImageFilter_Usage:
|
| + geo = kUnknown_SkPixelGeometry;
|
| + break;
|
| + }
|
| + fLeakyProperties->setPixelGeometry(geo);
|
| +}
|
| +
|
| SkSurface* SkBaseDevice::newSurface(const SkImageInfo&, const SkSurfaceProps&) { return NULL; }
|
|
|
| const void* SkBaseDevice::peekPixels(SkImageInfo*, size_t*) { return NULL; }
|
| @@ -187,3 +191,18 @@ bool SkBaseDevice::EXPERIMENTAL_drawPicture(SkCanvas*, const SkPicture*, const S
|
| // The base class doesn't perform any accelerated picture rendering
|
| return false;
|
| }
|
| +
|
| +//////////////////////////////////////////////////////////////////////////////////////////
|
| +
|
| +bool SkBaseDevice::disableLCD(const SkPaint& paint) const {
|
| + if (!paint.isLCDRenderText() || !paint.isAntiAlias()) {
|
| + return false;
|
| + }
|
| +
|
| + if (kUnknown_SkPixelGeometry == fLeakyProperties->pixelGeometry()) {
|
| + return true;
|
| + }
|
| +
|
| + return this->onDisableLCD(paint);
|
| +}
|
| +
|
|
|