diff options
author | senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-15 14:28:16 +0000 |
---|---|---|
committer | senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-15 14:28:16 +0000 |
commit | e36ddf01311802dd5c5fe85d47a9bd84b2b84565 (patch) | |
tree | 5afe3ee14eab469d374ed2cc169219546890d9d6 /samplecode/SampleBigBlur.cpp | |
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/SampleBigBlur.cpp')
-rw-r--r-- | samplecode/SampleBigBlur.cpp | 43 |
1 files changed, 43 insertions, 0 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); + |