| Index: src/pipe/SkGPipeRead.cpp
 | 
| diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp
 | 
| index 29d798bf7358162ec4962a3359252f151e01090e..083a12589103aa4ca9b998bbea53dfa3bf1f24d7 100644
 | 
| --- a/src/pipe/SkGPipeRead.cpp
 | 
| +++ b/src/pipe/SkGPipeRead.cpp
 | 
| @@ -9,6 +9,7 @@
 | 
|  
 | 
|  #include "SkBitmapHeap.h"
 | 
|  #include "SkCanvas.h"
 | 
| +#include "SkLight.h"
 | 
|  #include "SkPaint.h"
 | 
|  #include "SkGPipe.h"
 | 
|  #include "SkGPipePriv.h"
 | 
| @@ -507,6 +508,39 @@ static void drawAtlas_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32, Sk
 | 
|      }
 | 
|  }
 | 
|  
 | 
| +static void drawLitAtlas_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* diffTex = skip<SkRect>(reader, count);
 | 
| +    const SkRect* normTex = 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);
 | 
| +    }
 | 
| +
 | 
| +    const int numLights = reader->readU32();
 | 
| +    const SkLight* lights = skip<SkLight>(reader, numLights);
 | 
| +
 | 
| +    if (state->shouldDraw()) {
 | 
| +        canvas->drawLitAtlas(atlas, xform, diffTex, normTex, colors, count, mode, cull,
 | 
| +                             paint, lights, numLights);
 | 
| +    }
 | 
| +}
 | 
| +
 | 
|  ///////////////////////////////////////////////////////////////////////////////
 | 
|  
 | 
|  static void drawText_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
 | 
| @@ -874,6 +908,7 @@ static const ReadProc gReadTable[] = {
 | 
|      clipRRect_rp,
 | 
|      concat_rp,
 | 
|      drawAtlas_rp,
 | 
| +    drawLitAtlas_rp,
 | 
|      drawBitmap_rp,
 | 
|      drawBitmapNine_rp,
 | 
|      drawBitmapRect_rp,
 | 
| 
 |