aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkCanvas.h9
-rw-r--r--src/core/SkPictureShader.cpp4
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);