move SampleTypeface into gm/typefacestyles
git-svn-id: http://skia.googlecode.com/svn/trunk@7867 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index 2217863..d8e65c1 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -1,4 +1,3 @@
-
/*
* Copyright 2012 Google Inc.
*
@@ -12,9 +11,7 @@
#include "SkTypeface.h"
#include "SkTypes.h"
-namespace skiagm {
-
-const char* gFaces[] = {
+static const char* gFaces[] = {
"Times Roman",
"Hiragino Maru Gothic Pro",
"Papyrus",
@@ -22,7 +19,7 @@
"Courier New"
};
-class TypefaceGM : public GM {
+class TypefaceGM : public skiagm::GM {
public:
TypefaceGM() {
fFaces = new SkTypeface*[SK_ARRAY_COUNT(gFaces)];
@@ -72,12 +69,83 @@
SkTypeface** fFaces;
- typedef GM INHERITED;
+ typedef skiagm::GM INHERITED;
};
-////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
-static GM* MyFactory(void*) { return new TypefaceGM; }
-static GMRegistry reg(MyFactory);
+static const struct {
+ const char* fName;
+ SkTypeface::Style fStyle;
+} gFaceStyles[] = {
+ { "sans-serif", SkTypeface::kNormal },
+ { "sans-serif", SkTypeface::kBold },
+ { "sans-serif", SkTypeface::kItalic },
+ { "sans-serif", SkTypeface::kBoldItalic },
+ { "serif", SkTypeface::kNormal },
+ { "serif", SkTypeface::kBold },
+ { "serif", SkTypeface::kItalic },
+ { "serif", SkTypeface::kBoldItalic },
+ { "monospace", SkTypeface::kNormal },
+ { "monospace", SkTypeface::kBold },
+ { "monospace", SkTypeface::kItalic },
+ { "monospace", SkTypeface::kBoldItalic },
+};
-} // skiagm
+static const int gFaceStylesCount = SK_ARRAY_COUNT(gFaceStyles);
+
+class TypefaceStylesGM : public skiagm::GM {
+ SkTypeface* fFaces[gFaceStylesCount];
+
+public:
+ TypefaceStylesGM() {
+ for (int i = 0; i < gFaceStylesCount; i++) {
+ fFaces[i] = SkTypeface::CreateFromName(gFaceStyles[i].fName,
+ gFaceStyles[i].fStyle);
+ }
+ }
+
+ virtual ~TypefaceStylesGM() {
+ for (int i = 0; i < gFaceStylesCount; i++) {
+ SkSafeUnref(fFaces[i]);
+ }
+ }
+
+protected:
+ virtual SkString onShortName() SK_OVERRIDE {
+ return SkString("typefacestyles");
+ }
+
+ virtual SkISize onISize() SK_OVERRIDE {
+ return SkISize::Make(640, 480);
+ }
+
+ virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(SkIntToScalar(30));
+
+ const char* text = "Hamburgefons";
+ const size_t textLen = strlen(text);
+
+ SkScalar x = SkIntToScalar(10);
+ SkScalar dy = paint.getFontMetrics(NULL);
+ SkScalar y = dy;
+
+ paint.setLinearText(true);
+ for (int i = 0; i < gFaceStylesCount; i++) {
+ paint.setTypeface(fFaces[i]);
+ canvas->drawText(text, textLen, x, y, paint);
+ y += dy;
+ }
+ }
+
+private:
+ typedef skiagm::GM INHERITED;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+
+DEF_GM( return new TypefaceGM; )
+DEF_GM( return new TypefaceStylesGM; )
+
diff --git a/gyp/SampleApp.gyp b/gyp/SampleApp.gyp
index d93155a..b4104ed 100644
--- a/gyp/SampleApp.gyp
+++ b/gyp/SampleApp.gyp
@@ -99,7 +99,6 @@
'../samplecode/SampleTextureDomain.cpp',
'../samplecode/SampleTiling.cpp',
'../samplecode/SampleTinyBitmap.cpp',
- '../samplecode/SampleTypeface.cpp',
'../samplecode/SampleUnitMapper.cpp',
'../samplecode/SampleVertices.cpp',
'../samplecode/SampleXfermodesBlur.cpp',
diff --git a/samplecode/SampleTypeface.cpp b/samplecode/SampleTypeface.cpp
deleted file mode 100644
index ad1a16f..0000000
--- a/samplecode/SampleTypeface.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/*
- * 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"
-#include "SkTypeface.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUtils.h"
-#include "Sk1DPathEffect.h"
-#include "SkCornerPathEffect.h"
-#include "SkPathMeasure.h"
-#include "SkRandom.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkDither.h"
-#include "SkTypefaceCache.h"
-
-static int dither_4444(int x) {
- return ((x << 1) - ((x >> 4 << 4) | (x >> 4))) >> 4;
-}
-
-/** Ensure that the max of the original and dithered value (for alpha) is always
- >= any other dithered value. We apply this "max" in colorpriv.h when we
- predither down to 4444, to be sure that we stay in legal premultiplied form
- */
-static void test_4444_dither() {
- int buckets[16];
- sk_bzero(buckets, sizeof(buckets));
-
- for (int a = 0; a <= 0xFF; a++) {
- int da = dither_4444(a);
- int maxa = SkMax32(a >> 4, da);
- // SkDebugf("--- %02X %X\n", a, da);
- buckets[da] += 1;
- for (int c = 0; c <= a; c++) {
- int dc = dither_4444(c);
- if (maxa < dc) {
- SkDebugf("------------ error a=%d da=%d c=%d dc=%d\n", a, da,
- c, dc);
- }
- }
- }
- for (int i = 0; i < 16; i++) {
- // SkDebugf("[%d] = %d\n", i, buckets[i]);
- }
-}
-
-static const struct {
- const char* fName;
- SkTypeface::Style fStyle;
-} gFaces[] = {
- { "sans-serif", SkTypeface::kNormal },
- { "sans-serif", SkTypeface::kBold },
- { "sans-serif", SkTypeface::kItalic },
- { "sans-serif", SkTypeface::kBoldItalic },
- { "serif", SkTypeface::kNormal },
- { "serif", SkTypeface::kBold },
- { "serif", SkTypeface::kItalic },
- { "serif", SkTypeface::kBoldItalic },
- { "monospace", SkTypeface::kNormal },
- { "monospace", SkTypeface::kBold },
- { "monospace", SkTypeface::kItalic },
- { "monospace", SkTypeface::kBoldItalic },
-};
-
-static const int gFaceCount = SK_ARRAY_COUNT(gFaces);
-
-class TypefaceView : public SampleView {
- SkTypeface* fFaces[gFaceCount];
-
-public:
- TypefaceView() {
- test_4444_dither();
- for (int i = 0; i < gFaceCount; i++) {
- fFaces[i] = SkTypeface::CreateFromName(gFaces[i].fName,
- gFaces[i].fStyle);
- }
-
- this->setBGColor(0xFFDDDDDD);
- }
-
- virtual ~TypefaceView() {
- for (int i = 0; i < gFaceCount; i++) {
- SkSafeUnref(fFaces[i]);
- }
-
- SkTypefaceCache::Dump();
- }
-
-protected:
- // overrides from SkEventSink
- virtual bool onQuery(SkEvent* evt) {
- if (SampleCode::TitleQ(*evt)) {
- SampleCode::TitleR(evt, "Typefaces");
- return true;
- }
- return this->INHERITED::onQuery(evt);
- }
-
- virtual void onDrawContent(SkCanvas* canvas) {
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(SkIntToScalar(30));
-
- const char* text = "Hamburgefons";
- const size_t textLen = strlen(text);
-
- SkScalar x = SkIntToScalar(10);
- SkScalar dy = paint.getFontMetrics(NULL);
- SkScalar y = dy;
-
- paint.setLinearText(true);
- for (int i = 0; i < gFaceCount; i++) {
- paint.setTypeface(fFaces[i]);
- canvas->drawText(text, textLen, x, y, paint);
- y += dy;
- }
- }
-
-private:
- typedef SampleView INHERITED;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-static SkView* MyFactory() { return new TypefaceView; }
-static SkViewRegister reg(MyFactory);