diff options
Diffstat (limited to 'samplecode/SampleFontScalerTest.cpp')
-rw-r--r-- | samplecode/SampleFontScalerTest.cpp | 71 |
1 files changed, 46 insertions, 25 deletions
diff --git a/samplecode/SampleFontScalerTest.cpp b/samplecode/SampleFontScalerTest.cpp index 0b0d349..062eca3 100644 --- a/samplecode/SampleFontScalerTest.cpp +++ b/samplecode/SampleFontScalerTest.cpp @@ -1,3 +1,10 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ #include "SampleCode.h" #include "SkView.h" #include "SkCanvas.h" @@ -38,7 +45,7 @@ public: fFaces[i] = SkTypeface::CreateFromName(gFaces[i].fName, gFaces[i].fStyle); } - this->setBGColor(0xFFDDDDDD); +// this->setBGColor(0xFFDDDDDD); } virtual ~FontScalerTestView() { @@ -57,6 +64,12 @@ protected: return this->INHERITED::onQuery(evt); } + static void rotate_about(SkCanvas* canvas, SkScalar degrees, SkScalar px, SkScalar py) { + canvas->translate(px, py); + canvas->rotate(degrees); + canvas->translate(-px, -py); + } + virtual void onDrawContent(SkCanvas* canvas) { SkPaint paint; @@ -74,35 +87,43 @@ protected: canvas->drawPath(path, paint); } - canvas->translate(200, 20); - canvas->rotate(30); - +// paint.setSubpixelText(true); paint.setAntiAlias(true); paint.setLCDRenderText(true); SkSafeUnref(paint.setTypeface(SkTypeface::CreateFromName("Times Roman", SkTypeface::kNormal))); // const char* text = "abcdefghijklmnopqrstuvwxyz"; - const char* text = "HnHnHnHnHnHnHnHnH"; - size_t textLen = strlen(text); - - SkScalar x = SkIntToScalar(10); - SkScalar y = SkIntToScalar(20); - - { - SkPaint p; - p.setColor(SK_ColorRED); - SkRect r; - r.set(0, 0, x, y*20); - canvas->drawRect(r, p); - } - - int index = 0; - for (int ps = 9; ps <= 24; ps++) { - textLen = strlen(text); - paint.setTextSize(SkIntToScalar(ps)); - canvas->drawText(text, textLen, x, y, paint); - y += paint.getFontMetrics(NULL); - index += 1; + const char* text = "Hamburgefons ooo mmm"; + const size_t textLen = strlen(text); + + for (int j = 0; j < 2; ++j) { + for (int i = 0; i < 6; ++i) { + SkScalar x = SkIntToScalar(10); + SkScalar y = SkIntToScalar(20); + + SkAutoCanvasRestore acr(canvas, true); + canvas->translate(SkIntToScalar(50 + i * 230), + SkIntToScalar(20)); + rotate_about(canvas, i * 5, x, y * 10); + + { + SkPaint p; + p.setAntiAlias(true); + SkRect r; + r.set(x-3, 15, x-1, 280); + canvas->drawRect(r, p); + } + + int index = 0; + for (int ps = 6; ps <= 22; ps++) { + paint.setTextSize(SkIntToScalar(ps)); + canvas->drawText(text, textLen, x, y, paint); + y += paint.getFontMetrics(NULL); + index += 1; + } + } + canvas->translate(0, 400); + paint.setSubpixelText(true); } } |