1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2011 Google Inc. 3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be 5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file. 6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SampleCode.h" 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkBlurMask.h" 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkView.h" 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkCanvas.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkEmbossMaskFilter.h" 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkGradientShader.h" 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkGraphics.h" 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkPath.h" 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkRandom.h" 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkRegion.h" 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkShader.h" 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkUtils.h" 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkColorPriv.h" 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkColorFilter.h" 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkTime.h" 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkTypeface.h" 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass EmbossView : public SampleView { 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkEmbossMaskFilter::Light fLight; 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic: 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot EmbossView() { 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fLight.fDirection[0] = SK_Scalar1; 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fLight.fDirection[1] = SK_Scalar1; 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fLight.fDirection[2] = SK_Scalar1; 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fLight.fAmbient = 128; 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fLight.fSpecular = 16*2; 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected: 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot // overrides from SkEventSink 38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot virtual bool onQuery(SkEvent* evt) { 39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot if (SampleCode::TitleQ(*evt)) { 40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SampleCode::TitleR(evt, "Emboss"); 41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return true; 42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return this->INHERITED::onQuery(evt); 44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot virtual void onDrawContent(SkCanvas* canvas) { 47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkPaint paint; 48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setAntiAlias(true); 50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setStyle(SkPaint::kStroke_Style); 51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setStrokeWidth(SkIntToScalar(10)); 52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setMaskFilter(SkEmbossMaskFilter::Make(SkBlurMask::ConvertRadiusToSigma(4), fLight)); 53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setShader(SkShader::MakeColorShader(SK_ColorBLUE)); 54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot paint.setDither(true); 55fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 56fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot canvas->drawCircle(SkIntToScalar(50), SkIntToScalar(50), 57fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkIntToScalar(30), paint); 58fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 59fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 60fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 61fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 62fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot typedef SampleView INHERITED; 63fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 64fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 65fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot////////////////////////////////////////////////////////////////////////////// 66fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 67fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic SkView* MyFactory() { return new EmbossView; } 68fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstatic SkViewRegister reg(MyFactory); 69