Index: skia/effects/SkBlurDrawLooper.cpp |
=================================================================== |
--- skia/effects/SkBlurDrawLooper.cpp (revision 16859) |
+++ skia/effects/SkBlurDrawLooper.cpp (working copy) |
@@ -1,91 +0,0 @@ |
-#include "SkBlurDrawLooper.h" |
-#include "SkBlurMaskFilter.h" |
-#include "SkCanvas.h" |
-#include "SkPaint.h" |
-#include "SkMaskFilter.h" |
- |
-SkBlurDrawLooper::SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy, |
- SkColor color) |
- : fDx(dx), fDy(dy), fBlurColor(color) |
-{ |
- if (radius > 0) |
- fBlur = SkBlurMaskFilter::Create(radius, |
- SkBlurMaskFilter::kNormal_BlurStyle); |
- else |
- fBlur = NULL; |
-} |
- |
-SkBlurDrawLooper::SkBlurDrawLooper(SkFlattenableReadBuffer& buffer) |
-{ |
- fDx = buffer.readScalar(); |
- fDy = buffer.readScalar(); |
- fBlurColor = buffer.readU32(); |
- fBlur = static_cast<SkMaskFilter*>(buffer.readFlattenable()); |
-} |
- |
-SkBlurDrawLooper::~SkBlurDrawLooper() |
-{ |
- fBlur->safeUnref(); |
-} |
- |
-void SkBlurDrawLooper::flatten(SkFlattenableWriteBuffer& buffer) |
-{ |
- buffer.writeScalar(fDx); |
- buffer.writeScalar(fDy); |
- buffer.write32(fBlurColor); |
- buffer.writeFlattenable(fBlur); |
-} |
- |
-void SkBlurDrawLooper::init(SkCanvas* canvas, SkPaint* paint) |
-{ |
- // we do nothing if a maskfilter is already installed |
- if (paint->getMaskFilter() != NULL) |
- fState = kDone; |
- else |
- { |
- fState = kBeforeEdge; |
- fPaint = paint; |
- fCanvas = canvas; |
- fSaveCount = canvas->getSaveCount(); |
- } |
-} |
- |
-bool SkBlurDrawLooper::next() |
-{ |
- switch (fState) { |
- case kBeforeEdge: |
- fSavedColor = fPaint->getColor(); |
- fPaint->setColor(fBlurColor); |
- fPaint->setMaskFilter(fBlur); |
- fCanvas->save(SkCanvas::kMatrix_SaveFlag); |
- fCanvas->translate(fDx, fDy); |
- fState = kAfterEdge; |
- return true; |
- case kAfterEdge: |
- fPaint->setColor(fSavedColor); |
- fPaint->setMaskFilter(NULL); |
- fCanvas->restore(); // to remove the translate we did earlier |
- fState = kDone; |
- return true; |
- default: |
- SkASSERT(kDone == fState); |
- return false; |
- } |
-} |
- |
-void SkBlurDrawLooper::restore() |
-{ |
- if (kAfterEdge == fState) |
- { |
- fPaint->setColor(fSavedColor); |
- fPaint->setMaskFilter(NULL); |
- fCanvas->restore(); // to remove the translate we did earlier |
- fState = kDone; |
- } |
-} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-static SkFlattenable::Registrar gReg("SkBlurDrawLooper", |
- SkBlurDrawLooper::CreateProc); |
- |