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 */ 8f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SampleCode.h" 9f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SkView.h" 10f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SkCanvas.h" 11f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SkDevice.h" 12f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SkPaint.h" 13f549369fcd9f203dc8020b5b15ee49330058782areed@android.com#include "SkShader.h" 14f549369fcd9f203dc8020b5b15ee49330058782areed@android.com 15f549369fcd9f203dc8020b5b15ee49330058782areed@android.comclass LCDView : public SkView { 16f549369fcd9f203dc8020b5b15ee49330058782areed@android.compublic: 17f549369fcd9f203dc8020b5b15ee49330058782areed@android.com LCDView() {} 18ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 19f549369fcd9f203dc8020b5b15ee49330058782areed@android.comprotected: 20f549369fcd9f203dc8020b5b15ee49330058782areed@android.com // overrides from SkEventSink 21f549369fcd9f203dc8020b5b15ee49330058782areed@android.com virtual bool onQuery(SkEvent* evt) { 22f549369fcd9f203dc8020b5b15ee49330058782areed@android.com if (SampleCode::TitleQ(*evt)) { 23f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SampleCode::TitleR(evt, "LCD Text"); 24f549369fcd9f203dc8020b5b15ee49330058782areed@android.com return true; 25f549369fcd9f203dc8020b5b15ee49330058782areed@android.com } 26f549369fcd9f203dc8020b5b15ee49330058782areed@android.com return this->INHERITED::onQuery(evt); 27f549369fcd9f203dc8020b5b15ee49330058782areed@android.com } 28ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 29f549369fcd9f203dc8020b5b15ee49330058782areed@android.com void drawBG(SkCanvas* canvas) { 30f549369fcd9f203dc8020b5b15ee49330058782areed@android.com canvas->drawColor(SK_ColorWHITE); 31f549369fcd9f203dc8020b5b15ee49330058782areed@android.com } 32ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 33f549369fcd9f203dc8020b5b15ee49330058782areed@android.com virtual void onDraw(SkCanvas* canvas) { 34f549369fcd9f203dc8020b5b15ee49330058782areed@android.com this->drawBG(canvas); 35f549369fcd9f203dc8020b5b15ee49330058782areed@android.com 36f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkPaint paint; 37f549369fcd9f203dc8020b5b15ee49330058782areed@android.com paint.setAntiAlias(true); 38ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 39f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkScalar textSize = SkIntToScalar(6); 40f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkScalar delta = SK_Scalar1; 41f549369fcd9f203dc8020b5b15ee49330058782areed@android.com const char* text = "HHHamburgefonts iii"; 42f549369fcd9f203dc8020b5b15ee49330058782areed@android.com size_t len = strlen(text); 43f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkScalar x0 = SkIntToScalar(10); 44f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkScalar x1 = SkIntToScalar(310); 45f549369fcd9f203dc8020b5b15ee49330058782areed@android.com SkScalar y = SkIntToScalar(20); 46f549369fcd9f203dc8020b5b15ee49330058782areed@android.com 47f549369fcd9f203dc8020b5b15ee49330058782areed@android.com for (int i = 0; i < 20; i++) { 48f549369fcd9f203dc8020b5b15ee49330058782areed@android.com paint.setTextSize(textSize); 49f549369fcd9f203dc8020b5b15ee49330058782areed@android.com textSize += delta; 50ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 51f549369fcd9f203dc8020b5b15ee49330058782areed@android.com paint.setLCDRenderText(false); 52f549369fcd9f203dc8020b5b15ee49330058782areed@android.com canvas->drawText(text, len, x0, y, paint); 53f549369fcd9f203dc8020b5b15ee49330058782areed@android.com paint.setLCDRenderText(true); 54f549369fcd9f203dc8020b5b15ee49330058782areed@android.com canvas->drawText(text, len, x1, y, paint); 55ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 56f549369fcd9f203dc8020b5b15ee49330058782areed@android.com y += paint.getFontSpacing(); 57f549369fcd9f203dc8020b5b15ee49330058782areed@android.com } 58f549369fcd9f203dc8020b5b15ee49330058782areed@android.com } 59ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 60f549369fcd9f203dc8020b5b15ee49330058782areed@android.comprivate: 61f549369fcd9f203dc8020b5b15ee49330058782areed@android.com typedef SkView INHERITED; 62f549369fcd9f203dc8020b5b15ee49330058782areed@android.com}; 63f549369fcd9f203dc8020b5b15ee49330058782areed@android.com 64f549369fcd9f203dc8020b5b15ee49330058782areed@android.com////////////////////////////////////////////////////////////////////////////// 65f549369fcd9f203dc8020b5b15ee49330058782areed@android.com 66f549369fcd9f203dc8020b5b15ee49330058782areed@android.comstatic SkView* MyFactory() { return new LCDView; } 67f549369fcd9f203dc8020b5b15ee49330058782areed@android.comstatic SkViewRegister reg(MyFactory); 68