SampleBigGradient.cpp revision 55b8e8c81aaa6515fa66be58f11ab6a7ca7f1fae
1#include "SampleCode.h" 2#include "SkView.h" 3#include "SkCanvas.h" 4#include "SkGradientShader.h" 5 6static SkShader* make_grad(SkScalar w, SkScalar h) { 7 SkColor colors[] = { 0xFF000000, 0xFF333333 }; 8 SkPoint pts[] = { { 0, 0 }, { w, h } }; 9 return SkGradientShader::CreateLinear(pts, colors, NULL, 2, 10 SkShader::kClamp_TileMode); 11} 12 13class BigGradientView : public SkView { 14public: 15 BigGradientView() {} 16 17protected: 18 // overrides from SkEventSink 19 virtual bool onQuery(SkEvent* evt) { 20 if (SampleCode::TitleQ(*evt)) { 21 SampleCode::TitleR(evt, "BigGradient"); 22 return true; 23 } 24 return this->INHERITED::onQuery(evt); 25 } 26 27 void drawBG(SkCanvas* canvas) { 28 } 29 30 virtual void onDraw(SkCanvas* canvas) { 31 SkRect r; 32 r.set(0, 0, this->width(), this->height()); 33 SkPaint p; 34 p.setShader(make_grad(this->width(), this->height()))->unref(); 35 canvas->drawRect(r, p); 36 } 37 38private: 39 typedef SkView INHERITED; 40}; 41 42/////////////////////////////////////////////////////////////////////////////// 43 44static SkView* MyFactory() { return new BigGradientView; } 45static SkViewRegister reg(MyFactory); 46 47