aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/core/SkCanvas.h12
-rw-r--r--include/core/SkDevice.h16
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;