| Index: src/pipe/SkGPipeRead.cpp
|
| diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp
|
| index 917bb50976197c31ad3a6e32bd081edf11613166..8d3048d76f7f3954d5c364df85fad5adea928356 100644
|
| --- a/src/pipe/SkGPipeRead.cpp
|
| +++ b/src/pipe/SkGPipeRead.cpp
|
| @@ -20,11 +20,12 @@
|
| #include "SkDrawLooper.h"
|
| #include "SkImageFilter.h"
|
| #include "SkMaskFilter.h"
|
| -#include "SkReadBuffer.h"
|
| #include "SkPatchUtils.h"
|
| #include "SkPathEffect.h"
|
| #include "SkRasterizer.h"
|
| +#include "SkReadBuffer.h"
|
| #include "SkRRect.h"
|
| +#include "SkRSXform.h"
|
| #include "SkShader.h"
|
| #include "SkTextBlob.h"
|
| #include "SkTypeface.h"
|
| @@ -479,6 +480,33 @@ static void drawVertices_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
|
| }
|
| }
|
|
|
| +static void drawAtlas_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32, SkGPipeState* state) {
|
| + unsigned flags = DrawOp_unpackFlags(op32);
|
| +
|
| + const SkPaint* paint = NULL;
|
| + if (flags & kDrawAtlas_HasPaint_DrawOpFlag) {
|
| + paint = &state->paint();
|
| + }
|
| + const int slot = reader->readU32();
|
| + const SkImage* atlas = state->getImage(slot);
|
| + const int count = reader->readU32();
|
| + SkXfermode::Mode mode = (SkXfermode::Mode)reader->readU32();
|
| + const SkRSXform* xform = skip<SkRSXform>(reader, count);
|
| + const SkRect* tex = skip<SkRect>(reader, count);
|
| + const SkColor* colors = NULL;
|
| + if (flags & kDrawAtlas_HasColors_DrawOpFlag) {
|
| + colors = skip<SkColor>(reader, count);
|
| + }
|
| + const SkRect* cull = NULL;
|
| + if (flags & kDrawAtlas_HasCull_DrawOpFlag) {
|
| + cull = skip<SkRect>(reader, 1);
|
| + }
|
| +
|
| + if (state->shouldDraw()) {
|
| + canvas->drawAtlas(atlas, xform, tex, colors, count, mode, cull, paint);
|
| + }
|
| +}
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| static void drawText_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
|
| @@ -831,6 +859,7 @@ static const ReadProc gReadTable[] = {
|
| clipRect_rp,
|
| clipRRect_rp,
|
| concat_rp,
|
| + drawAtlas_rp,
|
| drawBitmap_rp,
|
| drawBitmapNine_rp,
|
| drawBitmapRect_rp,
|
|
|