| Index: gm/lumamode.cpp | 
| diff --git a/gm/lumamode.cpp b/gm/lumamode.cpp | 
| index e6aed18bb4ba046e8acb348ba46733278f0cc301..51f2e5d295cbe21efa919585c5027f9cfd90cc11 100644 | 
| --- a/gm/lumamode.cpp | 
| +++ b/gm/lumamode.cpp | 
| @@ -76,6 +76,7 @@ public: | 
| LumaXfermodeGM() { | 
| fSrcInXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kSrcIn_Mode)); | 
| fDstInXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kDstIn_Mode)); | 
| +        fSrcOverXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kSrcOver_Mode)); | 
|  | 
| SkColor  g1Colors[] = { kColor1, SkColorSetA(kColor1, 0x20) }; | 
| SkColor  g2Colors[] = { kColor2, SkColorSetA(kColor2, 0x20) }; | 
| @@ -105,7 +106,7 @@ protected: | 
| } | 
|  | 
| virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 
| -        SkXfermode* modes[] = { NULL, fSrcInXfer, fDstInXfer }; | 
| +        SkXfermode* modes[] = { NULL, fSrcInXfer, fDstInXfer, fSrcOverXfer }; | 
| struct { | 
| SkShader*   fShader1; | 
| SkShader*   fShader2; | 
| @@ -120,6 +121,7 @@ protected: | 
| draw_label(canvas, "SrcOver", SkPoint::Make(gridStep, 20)); | 
| draw_label(canvas, "SrcInLuma", SkPoint::Make(gridStep * 3, 20)); | 
| draw_label(canvas, "DstInLuma", SkPoint::Make(gridStep * 5, 20)); | 
| +        draw_label(canvas, "SrcOverLuma", SkPoint::Make(gridStep * 7, 20)); | 
| for (size_t i = 0; i < SK_ARRAY_COUNT(shaders); ++i) { | 
| canvas->save(); | 
| canvas->translate(kInset, gridStep * i + 30); | 
| @@ -137,7 +139,7 @@ protected: | 
|  | 
| private: | 
| SkAutoTUnref<SkShader>   fGr1, fGr2; | 
| -    SkAutoTUnref<SkXfermode> fSrcInXfer, fDstInXfer; | 
| +    SkAutoTUnref<SkXfermode> fSrcInXfer, fDstInXfer, fSrcOverXfer; | 
|  | 
| typedef skiagm::GM INHERITED; | 
| }; | 
|  |