| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkColor.h" | 9 #include "SkColor.h" |
| 10 #include "SkReadBuffer.h" | 10 #include "SkReadBuffer.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 SkLayerDrawLooper::~SkLayerDrawLooper() { | 30 SkLayerDrawLooper::~SkLayerDrawLooper() { |
| 31 Rec* rec = fRecs; | 31 Rec* rec = fRecs; |
| 32 while (rec) { | 32 while (rec) { |
| 33 Rec* next = rec->fNext; | 33 Rec* next = rec->fNext; |
| 34 SkDELETE(rec); | 34 SkDELETE(rec); |
| 35 rec = next; | 35 rec = next; |
| 36 } | 36 } |
| 37 } | 37 } |
| 38 | 38 |
| 39 SkLayerDrawLooper::Context* SkLayerDrawLooper::createContext(SkCanvas* canvas, v
oid* storage) const { | 39 SkLayerDrawLooper::Context* SkLayerDrawLooper::createContext(SkCanvas* canvas, v
oid* storage) const { |
| 40 canvas->save(SkCanvas::kMatrix_SaveFlag); | 40 canvas->save(); |
| 41 return SkNEW_PLACEMENT_ARGS(storage, LayerDrawLooperContext, (this)); | 41 return SkNEW_PLACEMENT_ARGS(storage, LayerDrawLooperContext, (this)); |
| 42 } | 42 } |
| 43 | 43 |
| 44 static SkColor xferColor(SkColor src, SkColor dst, SkXfermode::Mode mode) { | 44 static SkColor xferColor(SkColor src, SkColor dst, SkXfermode::Mode mode) { |
| 45 switch (mode) { | 45 switch (mode) { |
| 46 case SkXfermode::kSrc_Mode: | 46 case SkXfermode::kSrc_Mode: |
| 47 return src; | 47 return src; |
| 48 case SkXfermode::kDst_Mode: | 48 case SkXfermode::kDst_Mode: |
| 49 return dst; | 49 return dst; |
| 50 default: { | 50 default: { |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 | 133 |
| 134 bool SkLayerDrawLooper::LayerDrawLooperContext::next(SkCanvas* canvas, | 134 bool SkLayerDrawLooper::LayerDrawLooperContext::next(SkCanvas* canvas, |
| 135 SkPaint* paint) { | 135 SkPaint* paint) { |
| 136 canvas->restore(); | 136 canvas->restore(); |
| 137 if (NULL == fCurrRec) { | 137 if (NULL == fCurrRec) { |
| 138 return false; | 138 return false; |
| 139 } | 139 } |
| 140 | 140 |
| 141 ApplyInfo(paint, fCurrRec->fPaint, fCurrRec->fInfo); | 141 ApplyInfo(paint, fCurrRec->fPaint, fCurrRec->fInfo); |
| 142 | 142 |
| 143 canvas->save(SkCanvas::kMatrix_SaveFlag); | 143 canvas->save(); |
| 144 if (fCurrRec->fInfo.fPostTranslate) { | 144 if (fCurrRec->fInfo.fPostTranslate) { |
| 145 postTranslate(canvas, fCurrRec->fInfo.fOffset.fX, | 145 postTranslate(canvas, fCurrRec->fInfo.fOffset.fX, |
| 146 fCurrRec->fInfo.fOffset.fY); | 146 fCurrRec->fInfo.fOffset.fY); |
| 147 } else { | 147 } else { |
| 148 canvas->translate(fCurrRec->fInfo.fOffset.fX, | 148 canvas->translate(fCurrRec->fInfo.fOffset.fX, |
| 149 fCurrRec->fInfo.fOffset.fY); | 149 fCurrRec->fInfo.fOffset.fY); |
| 150 } | 150 } |
| 151 fCurrRec = fCurrRec->fNext; | 151 fCurrRec = fCurrRec->fNext; |
| 152 | 152 |
| 153 return true; | 153 return true; |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 SkLayerDrawLooper* looper = SkNEW(SkLayerDrawLooper); | 334 SkLayerDrawLooper* looper = SkNEW(SkLayerDrawLooper); |
| 335 looper->fCount = fCount; | 335 looper->fCount = fCount; |
| 336 looper->fRecs = fRecs; | 336 looper->fRecs = fRecs; |
| 337 | 337 |
| 338 fCount = 0; | 338 fCount = 0; |
| 339 fRecs = NULL; | 339 fRecs = NULL; |
| 340 fTopRec = NULL; | 340 fTopRec = NULL; |
| 341 | 341 |
| 342 return looper; | 342 return looper; |
| 343 } | 343 } |
| OLD | NEW |