diff options
Diffstat (limited to 'samplecode/SampleBigGradient.cpp')
-rw-r--r-- | samplecode/SampleBigGradient.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/samplecode/SampleBigGradient.cpp b/samplecode/SampleBigGradient.cpp new file mode 100644 index 0000000000..5d6d247bcd --- /dev/null +++ b/samplecode/SampleBigGradient.cpp @@ -0,0 +1,46 @@ +#include "SampleCode.h" +#include "SkView.h" +#include "SkCanvas.h" +#include "SkGradientShader.h" + +static SkShader* make_grad(SkScalar w, SkScalar h) { + SkColor colors[] = { 0xFF000000, 0xFF333333 }; + SkPoint pts[] = { { 0, 0 }, { w, h } }; + return SkGradientShader::CreateLinear(pts, colors, NULL, 2, + SkShader::kClamp_TileMode); +} + +class BigGradientView : public SkView { +public: + BigGradientView() {} + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SampleCode::TitleR(evt, "BigGradient"); + return true; + } + return this->INHERITED::onQuery(evt); + } + + void drawBG(SkCanvas* canvas) { + } + + virtual void onDraw(SkCanvas* canvas) { + SkRect r; + r.set(0, 0, this->width(), this->height()); + SkPaint p; + p.setShader(make_grad(this->width(), this->height()))->unref(); + canvas->drawRect(r, p); + } + +private: + typedef SkView INHERITED; +}; + +/////////////////////////////////////////////////////////////////////////////// + +static SkView* MyFactory() { return new BigGradientView; } +static SkViewRegister reg(MyFactory); + |