diff options
author | fmalita <fmalita@chromium.org> | 2015-02-02 05:25:04 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-02 05:25:04 -0800 |
commit | 3d91aad293b0f68886ed48ecfa6aa75826a27da8 (patch) | |
tree | 8a1e2a5c7d1ca55ae0bff03ae949695d28c42405 | |
parent | c927918cd65cd409a265eaf789fbe5f4c3f98284 (diff) |
Disable LCD text when rasterizing SkPictureShader tiles.
BUG=chromium:453299
R=reed@google.com
Review URL: https://codereview.chromium.org/884163003
-rw-r--r-- | include/core/SkCanvas.h | 9 | ||||
-rw-r--r-- | src/core/SkPictureShader.cpp | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h index 3eecaf760a..d929439083 100644 --- a/include/core/SkCanvas.h +++ b/include/core/SkCanvas.h @@ -100,6 +100,14 @@ public: structure are copied to the canvas. */ explicit SkCanvas(const SkBitmap& bitmap); + + /** Construct a canvas with the specified bitmap to draw into. + @param bitmap Specifies a bitmap for the canvas to draw into. Its + structure are copied to the canvas. + @param props New canvas surface properties. + */ + SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props); + virtual ~SkCanvas(); SkMetaData& getMetaData(); @@ -1278,7 +1286,6 @@ private: }; SkCanvas(const SkIRect& bounds, InitFlags); SkCanvas(SkBaseDevice*, const SkSurfaceProps*, InitFlags); - SkCanvas(const SkBitmap&, const SkSurfaceProps&); // needs gettotalclip() friend class SkCanvasStateUtils; diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp index 36b55cae66..adf2bb63a8 100644 --- a/src/core/SkPictureShader.cpp +++ b/src/core/SkPictureShader.cpp @@ -194,7 +194,9 @@ SkShader* SkPictureShader::refBitmapShader(const SkMatrix& matrix, const SkMatri } bm.eraseColor(SK_ColorTRANSPARENT); - SkCanvas canvas(bm); + // Always disable LCD text, since we can't assume our image will be opaque. + SkCanvas canvas(bm, SkSurfaceProps(0, kUnknown_SkPixelGeometry)); + canvas.scale(tileScale.width(), tileScale.height()); canvas.translate(-fTile.x(), -fTile.y()); canvas.drawPicture(fPicture); |