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);