diff options
author | Mike Reed <reed@google.com> | 2017-04-03 11:11:09 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-03 15:50:16 +0000 |
commit | 887cdf112809727c51890ba8b98b3ddce22249f0 (patch) | |
tree | 6ae2774f9ec869f72cf117993eba25c6ef97e28b /src/pipe/SkPipeReader.cpp | |
parent | b55dd553124cd00260bc9e3a63ec8a8fe09412a8 (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.cpp | 30 |
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) { |