| Index: samplecode/SampleAnimBlur.cpp | 
| diff --git a/samplecode/SampleAnimBlur.cpp b/samplecode/SampleAnimBlur.cpp | 
| index e00c46ddd19a660a93600231a97028ed418ec3bf..527d4300e7acd616048673229cfa4f8448899fd0 100644 | 
| --- a/samplecode/SampleAnimBlur.cpp | 
| +++ b/samplecode/SampleAnimBlur.cpp | 
| @@ -11,14 +11,23 @@ | 
| #include "SkCanvas.h" | 
| #include "SkRandom.h" | 
|  | 
| +SkScalar get_anim_sin(SkMSec time, SkScalar amplitude, SkScalar periodInSec, SkScalar phaseInSec) { | 
| +    if (!periodInSec) { | 
| +        return 0; | 
| +    } | 
| +    double t = (double)time / 1000.0 + phaseInSec; | 
| +    t *= SkScalarToFloat(2 * SK_ScalarPI) / periodInSec; | 
| +    amplitude = SK_ScalarHalf * amplitude; | 
| +    return amplitude * SkDoubleToScalar(sin(t)) + amplitude; | 
| +} | 
| + | 
| class AnimBlurView : public SampleView { | 
| public: | 
| -    AnimBlurView() { | 
| -    } | 
| +    AnimBlurView() : fBlurSigma(0), fCircleRadius(100) {} | 
|  | 
| protected: | 
| // overrides from SkEventSink | 
| -    virtual bool onQuery(SkEvent* evt) { | 
| +    bool onQuery(SkEvent* evt) SK_OVERRIDE { | 
| if (SampleCode::TitleQ(*evt)) { | 
| SampleCode::TitleR(evt, "AnimBlur"); | 
| return true; | 
| @@ -26,17 +35,7 @@ protected: | 
| return this->INHERITED::onQuery(evt); | 
| } | 
|  | 
| -    virtual void onDrawContent(SkCanvas* canvas) { | 
| - | 
| -        SkScalar blurSigma = SampleCode::GetAnimSinScalar(100 * SK_Scalar1, | 
| -                                                          4 * SK_Scalar1, | 
| -                                                          5 * SK_Scalar1); | 
| - | 
| -        SkScalar circleRadius = 3 * SK_Scalar1 + | 
| -                                SampleCode::GetAnimSinScalar(150 * SK_Scalar1, | 
| -                                                             25 * SK_Scalar1, | 
| -                                                             3 * SK_Scalar1); | 
| - | 
| +    void onDrawContent(SkCanvas* canvas) SK_OVERRIDE { | 
| static const SkBlurStyle gStyles[] = { | 
| kNormal_SkBlurStyle, | 
| kInner_SkBlurStyle, | 
| @@ -48,20 +47,27 @@ protected: | 
| for (size_t i = 0; i < SK_ARRAY_COUNT(gStyles); ++i) { | 
| SkMaskFilter* mf = SkBlurMaskFilter::Create( | 
| gStyles[i], | 
| -                                       blurSigma, | 
| +                                       fBlurSigma, | 
| SkBlurMaskFilter::kHighQuality_BlurFlag); | 
| SkPaint paint; | 
| SkSafeUnref(paint.setMaskFilter(mf)); | 
| paint.setColor(random.nextU() | 0xff000000); | 
| canvas->drawCircle(200 * SK_Scalar1 + 400 * (i % 2) * SK_Scalar1, | 
| 200 * SK_Scalar1 + i / 2 * 400 * SK_Scalar1, | 
| -                               circleRadius, paint); | 
| +                               fCircleRadius, paint); | 
| } | 
| -        this->inval(NULL); | 
| +    } | 
| + | 
| +    bool onAnimatePulse(SkMSec curr, SkMSec prev) SK_OVERRIDE { | 
| +        fBlurSigma = get_anim_sin(curr, 100, 4, 5); | 
| +        fCircleRadius = 3 + get_anim_sin(curr, 150, 25, 3); | 
| +        return true; | 
| } | 
|  | 
| private: | 
| -    typedef SkView INHERITED; | 
| +    SkScalar fBlurSigma, fCircleRadius; | 
| + | 
| +    typedef SampleView INHERITED; | 
| }; | 
|  | 
| ////////////////////////////////////////////////////////////////////////////// | 
|  |