зеркало из https://github.com/mozilla/moz-skia.git
47 строки
1.2 KiB
C++
47 строки
1.2 KiB
C++
#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);
|
|
|