diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkCanvas.h | 12 | ||||
-rw-r--r-- | include/core/SkDevice.h | 16 |
2 files changed, 25 insertions, 3 deletions
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h index cd6421beb1..33d565c0a1 100644 --- a/include/core/SkCanvas.h +++ b/include/core/SkCanvas.h @@ -336,6 +336,13 @@ public: return this->saveLayer(&bounds, paint); } + /** + * Temporary name. + * Will allow any requests for LCD text to be respected, so the caller must be careful to + * only draw on top of opaque sections of the layer to get good results. + */ + int saveLayerPreserveLCDTextRequests(const SkRect* bounds, const SkPaint* paint); + /** DEPRECATED - use saveLayer(const SkRect*, const SkPaint*) instead. This behaves the same as saveLayer(const SkRect*, const SkPaint*), @@ -1316,6 +1323,11 @@ protected: const SkImageFilter* imageFilter = NULL); private: + enum PrivateSaveFlags { + // These must not overlap the public flags. + kPreserveLCDText_PrivateSaveFlag = 1 << 5, + }; + enum ShaderOverrideOpacity { kNone_ShaderOverrideOpacity, //!< there is no overriding shader (bitmap or image) kOpaque_ShaderOverrideOpacity, //!< the overriding shader is opaque diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h index a7a3895db4..65ec56f902 100644 --- a/include/core/SkDevice.h +++ b/include/core/SkDevice.h @@ -333,16 +333,26 @@ protected: const SkPaint*); struct CreateInfo { - static SkPixelGeometry AdjustGeometry(const SkImageInfo&, TileUsage, SkPixelGeometry); + static SkPixelGeometry AdjustGeometry(const SkImageInfo&, TileUsage, SkPixelGeometry, + bool preserveLCDText); // The constructor may change the pixel geometry based on other parameters. CreateInfo(const SkImageInfo& info, TileUsage tileUsage, + SkPixelGeometry geo) + : fInfo(info) + , fTileUsage(tileUsage) + , fPixelGeometry(AdjustGeometry(info, tileUsage, geo, false)) + , fForImageFilter(false) {} + + CreateInfo(const SkImageInfo& info, + TileUsage tileUsage, SkPixelGeometry geo, - bool forImageFilter = false) + bool preserveLCDText, + bool forImageFilter) : fInfo(info) , fTileUsage(tileUsage) - , fPixelGeometry(AdjustGeometry(info, tileUsage, geo)) + , fPixelGeometry(AdjustGeometry(info, tileUsage, geo, preserveLCDText)) , fForImageFilter(forImageFilter) {} const SkImageInfo fInfo; |