1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc.
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
8e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org#include "SampleCode.h"
9b7061176c7f414616fe2e79e832b3e0abe326af6robertphillips@google.com#include "SkBlurMask.h"
10e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org#include "SkBlurMaskFilter.h"
11e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org#include "SkCanvas.h"
12b7061176c7f414616fe2e79e832b3e0abe326af6robertphillips@google.com#include "SkView.h"
13e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
14e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgclass BigBlurView : public SampleView {
15e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgpublic:
16e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    BigBlurView() {
17e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    }
18e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
19e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgprotected:
20e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    // overrides from SkEventSink
21e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    virtual bool onQuery(SkEvent* evt) {
22e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        if (SampleCode::TitleQ(*evt)) {
23e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org            SampleCode::TitleR(evt, "BigBlur");
24e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org            return true;
25e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        }
26e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        return this->INHERITED::onQuery(evt);
27e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    }
28e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
29e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    virtual void onDrawContent(SkCanvas* canvas) {
30e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        SkPaint paint;
31e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        canvas->save();
32e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        paint.setColor(SK_ColorBLUE);
33e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        SkMaskFilter* mf = SkBlurMaskFilter::Create(
34e396455d2d60ddf8e625b5037254f3c09fbcdcf5commit-bot@chromium.org            kNormal_SkBlurStyle,
35b7061176c7f414616fe2e79e832b3e0abe326af6robertphillips@google.com            SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(128)),
36e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org            SkBlurMaskFilter::kHighQuality_BlurFlag);
37e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        paint.setMaskFilter(mf)->unref();
38e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        canvas->translate(200, 200);
394a947d264b2764685e5f82b2e5d328a50e9612easenorblanco@chromium.org        canvas->drawCircle(100, 100, 200, paint);
40e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org        canvas->restore();
41e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    }
42e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
43e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgprivate:
44e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org    typedef SkView INHERITED;
45e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org};
46e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
47e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org//////////////////////////////////////////////////////////////////////////////
48e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.org
49e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgstatic SkView* MyFactory() { return new BigBlurView; }
50e36ddf01311802dd5c5fe85d47a9bd84b2b84565senorblanco@chromium.orgstatic SkViewRegister reg(MyFactory);
51