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 */ 84de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com#include "SampleCode.h" 94de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com#include "SkView.h" 104de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com#include "SkCanvas.h" 114de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com#include "SkGradientShader.h" 124de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 134de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 1471a6cbfc585959738dc0b375603696ca7f60605freedclass TwoPtConicalView : public SampleView { 154de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.compublic: 1671a6cbfc585959738dc0b375603696ca7f60605freed TwoPtConicalView() {} 174de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 184de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.comprotected: 194de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com // overrides from SkEventSink 204de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com virtual bool onQuery(SkEvent* evt) { 214de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com if (SampleCode::TitleQ(*evt)) { 2271a6cbfc585959738dc0b375603696ca7f60605freed SampleCode::TitleR(evt, "2PtConical"); 234de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com return true; 244de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com } 254de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com return this->INHERITED::onQuery(evt); 264de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com } 274de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 284de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com virtual void onDrawContent(SkCanvas* canvas) { 294de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); 304de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 314de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkColor colors[] = { SK_ColorRED, SK_ColorBLUE }; 324de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkPoint c0 = { 0, 0 }; 334de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkScalar r0 = 100; 344de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkPoint c1 = { 100, 100 }; 354de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkScalar r1 = 100; 3671a6cbfc585959738dc0b375603696ca7f60605freed SkShader* s = SkGradientShader::CreateTwoPointConical(c0, r0, c1, r1, colors, 372880df2609eba09b555ca37be04b6ad89290c765Tom Hudson nullptr, 2, 384de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkShader::kClamp_TileMode); 39ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 404de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com SkPaint paint; 414de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com paint.setShader(s)->unref(); 424de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com canvas->drawPaint(paint); 434de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com } 444de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 454de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.comprivate: 464de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com typedef SampleView INHERITED; 474de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com}; 484de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 494de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com////////////////////////////////////////////////////////////////////////////// 504de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.com 5171a6cbfc585959738dc0b375603696ca7f60605freedstatic SkView* MyFactory() { return new TwoPtConicalView; } 524de4d60a1bb295c2bbac5dc82f69c22c109adc60reed@google.comstatic SkViewRegister reg(MyFactory); 53