aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPicturePlayback.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-30 15:51:25 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-30 15:51:25 +0000
commit85e143c33c214e54187aa28146aa7666961a0d17 (patch)
treeea17e4f5dc71cc57b6044a95a0c1cb09245dd216 /src/core/SkPicturePlayback.cpp
parentfbd9b17711e6f86853f1c5fdb76efce1b9f52bd1 (diff)
reenable vertices gm, adding picture support
BUG= Review URL: https://codereview.chromium.org/112913005 git-svn-id: http://skia.googlecode.com/svn/trunk@12845 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkPicturePlayback.cpp')
-rw-r--r--src/core/SkPicturePlayback.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index cb73689eeb..195afc6526 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -1025,6 +1025,7 @@ void SkPicturePlayback::draw(SkCanvas& canvas, SkDrawPictureCallback* callback)
matrix, paint);
} break;
case DRAW_VERTICES: {
+ SkAutoTUnref<SkXfermode> xfer;
const SkPaint& paint = *getPaint(reader);
DrawVertexFlags flags = (DrawVertexFlags)reader.readInt();
SkCanvas::VertexMode vmode = (SkCanvas::VertexMode)reader.readInt();
@@ -1048,7 +1049,14 @@ void SkPicturePlayback::draw(SkCanvas& canvas, SkDrawPictureCallback* callback)
indices = (const uint16_t*)reader.skip(
iCount * sizeof(uint16_t));
}
- canvas.drawVertices(vmode, vCount, verts, texs, colors, NULL,
+ if (flags & DRAW_VERTICES_HAS_XFER) {
+ int mode = reader.readInt();
+ if (mode < 0 || mode > SkXfermode::kLastMode) {
+ mode = SkXfermode::kModulate_Mode;
+ }
+ xfer.reset(SkXfermode::Create((SkXfermode::Mode)mode));
+ }
+ canvas.drawVertices(vmode, vCount, verts, texs, colors, xfer,
indices, iCount, paint);
} break;
case RESTORE: