aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pipe/SkPipeReader.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-04-03 11:11:09 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-03 15:50:16 +0000
commit887cdf112809727c51890ba8b98b3ddce22249f0 (patch)
tree6ae2774f9ec869f72cf117993eba25c6ef97e28b /src/pipe/SkPipeReader.cpp
parentb55dd553124cd00260bc9e3a63ec8a8fe09412a8 (diff)
move vertex-mode enum into SkVertices
BUG=skia:6366 Change-Id: I3c0bf96cce6d32c9b8d12d16a772aaa6f18981aa Reviewed-on: https://skia-review.googlesource.com/11062 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/pipe/SkPipeReader.cpp')
-rw-r--r--src/pipe/SkPipeReader.cpp30
1 files changed, 4 insertions, 26 deletions
diff --git a/src/pipe/SkPipeReader.cpp b/src/pipe/SkPipeReader.cpp
index 6310b15bae..974e6b005d 100644
--- a/src/pipe/SkPipeReader.cpp
+++ b/src/pipe/SkPipeReader.cpp
@@ -17,6 +17,7 @@
#include "SkRSXform.h"
#include "SkTextBlob.h"
#include "SkTypeface.h"
+#include "SkVertices.h"
class SkPipeReader;
@@ -567,32 +568,9 @@ static void drawImageLattice_handler(SkPipeReader& reader, uint32_t packedVerb,
static void drawVertices_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
SkASSERT(SkPipeVerb::kDrawVertices == unpack_verb(packedVerb));
- SkCanvas::VertexMode vmode = (SkCanvas::VertexMode)
- ((packedVerb & kVMode_DrawVerticesMask) >> kVMode_DrawVerticesShift);
- int vertexCount = packedVerb & kVCount_DrawVerticesMask;
- if (0 == vertexCount) {
- vertexCount = reader.read32();
- }
- SkBlendMode bmode = (SkBlendMode)
- ((packedVerb & kXMode_DrawVerticesMask) >> kXMode_DrawVerticesShift);
- const SkPoint* vertices = skip<SkPoint>(reader, vertexCount);
- const SkPoint* texs = nullptr;
- if (packedVerb & kHasTex_DrawVerticesMask) {
- texs = skip<SkPoint>(reader, vertexCount);
- }
- const SkColor* colors = nullptr;
- if (packedVerb & kHasColors_DrawVerticesMask) {
- colors = skip<SkColor>(reader, vertexCount);
- }
- int indexCount = 0;
- const uint16_t* indices = nullptr;
- if (packedVerb & kHasIndices_DrawVerticesMask) {
- indexCount = reader.read32();
- indices = skip<uint16_t>(reader, indexCount);
- }
-
- canvas->drawVertices(vmode, vertexCount, vertices, texs, colors, bmode,
- indices, indexCount, read_paint(reader));
+ SkBlendMode bmode = (SkBlendMode)unpack_verb_extra(packedVerb);
+ sk_sp<SkData> data = reader.readByteArrayAsData();
+ canvas->drawVertices(SkVertices::Decode(data->data(), data->size()), bmode, read_paint(reader));
}
static void drawPicture_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {