From e36ddf01311802dd5c5fe85d47a9bd84b2b84565 Mon Sep 17 00:00:00 2001 From: "senorblanco@chromium.org" Date: Fri, 15 Jul 2011 14:28:16 +0000 Subject: 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 --- samplecode/SampleBigBlur.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 samplecode/SampleBigBlur.cpp (limited to 'samplecode/SampleBigBlur.cpp') 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); + -- cgit v1.2.3