11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SampleCode.h" 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkView.h" 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkCanvas.h" 111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkGradientShader.h" 121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerclass TwoPtRadialView : public SampleView { 151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerpublic: 161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger TwoPtRadialView() {} 171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprotected: 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger // overrides from SkEventSink 201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual bool onQuery(SkEvent* evt) { 211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger if (SampleCode::TitleQ(*evt)) { 221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SampleCode::TitleR(evt, "2PtRadial"); 231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger return true; 241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger return this->INHERITED::onQuery(evt); 261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual void onDrawContent(SkCanvas* canvas) { 291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); 301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkColor colors[] = { SK_ColorRED, SK_ColorBLUE }; 321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkPoint c0 = { 0, 0 }; 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkScalar r0 = 100; 341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkPoint c1 = { 100, 100 }; 351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkScalar r1 = 100; 361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkShader* s = SkGradientShader::CreateTwoPointRadial(c0, r0, c1, r1, colors, 371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger NULL, 2, 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkShader::kClamp_TileMode); 391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkPaint paint; 411cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger paint.setShader(s)->unref(); 421cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger canvas->drawPaint(paint); 431cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 441cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 451cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprivate: 461cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger typedef SampleView INHERITED; 471cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger}; 481cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 491cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger////////////////////////////////////////////////////////////////////////////// 501cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 511cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerstatic SkView* MyFactory() { return new TwoPtRadialView; } 521cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerstatic SkViewRegister reg(MyFactory); 53