diff options
-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); |