diff options
author | 2011-07-15 14:28:16 +0000 | |
---|---|---|
committer | 2011-07-15 14:28:16 +0000 | |
commit | e36ddf01311802dd5c5fe85d47a9bd84b2b84565 (patch) | |
tree | 5afe3ee14eab469d374ed2cc169219546890d9d6 /samplecode | |
parent | 9de4dc9b1ecb724757a9895c6a7d32d6267bf211 (diff) |
More GPU blur fixes.
- clamp the max. radius to 128, as the software path does
- use a more accurate radius-to-sigma conversion (0.6 instead of 0.6666)
- make SampleBlur derive from SampleView, not SkView, so benchmark mode ('f')
works
- implement a new BigBlur sample to test large radii
Review URL: http://codereview.appspot.com/4726043
git-svn-id: http://skia.googlecode.com/svn/trunk@1871 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SampleBigBlur.cpp | 43 | ||||
-rw-r--r-- | samplecode/SampleBlur.cpp | 4 |
2 files changed, 45 insertions, 2 deletions
diff --git a/samplecode/SampleBigBlur.cpp b/samplecode/SampleBigBlur.cpp new file mode 100644 index 0000000000..243e0dfd71 --- /dev/null +++ b/samplecode/SampleBigBlur.cpp @@ -0,0 +1,43 @@ +#include "SampleCode.h" +#include "SkBlurMaskFilter.h" +#include "SkView.h" +#include "SkCanvas.h" + +class BigBlurView : public SampleView { +public: + BigBlurView() { + } + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SampleCode::TitleR(evt, "BigBlur"); + return true; + } + return this->INHERITED::onQuery(evt); + } + + virtual void onDrawContent(SkCanvas* canvas) { + SkPaint paint; + canvas->save(); + paint.setColor(SK_ColorBLUE); + SkMaskFilter* mf = SkBlurMaskFilter::Create( + 128, + SkBlurMaskFilter::kNormal_BlurStyle, + SkBlurMaskFilter::kHighQuality_BlurFlag); + paint.setMaskFilter(mf)->unref(); + canvas->translate(200, 200); + canvas->drawCircle(100, 100, 250, paint); + canvas->restore(); + } + +private: + typedef SkView INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +static SkView* MyFactory() { return new BigBlurView; } +static SkViewRegister reg(MyFactory); + diff --git a/samplecode/SampleBlur.cpp b/samplecode/SampleBlur.cpp index d2ea2b0aeb..98cfcfb1b5 100644 --- a/samplecode/SampleBlur.cpp +++ b/samplecode/SampleBlur.cpp @@ -41,7 +41,7 @@ static SkBitmap make_bitmap() { return bm; } -class BlurView : public SkView { +class BlurView : public SampleView { SkBitmap fBM; public: BlurView() { @@ -61,7 +61,7 @@ protected: canvas->drawColor(0xFFDDDDDD); } - virtual void onDraw(SkCanvas* canvas) { + virtual void onDrawContent(SkCanvas* canvas) { drawBG(canvas); SkBlurMaskFilter::BlurStyle NONE = SkBlurMaskFilter::BlurStyle(-999); |