Adding my Bitmap2Path sample for 1on1 meeting.

BUG=
R=reed@google.com, borenet@google.com

Author: dierk@google.com

Review URL: https://chromiumcodereview.appspot.com/16829003

git-svn-id: http://skia.googlecode.com/svn/trunk@9843 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SamplePathUtils.cpp b/samplecode/SamplePathUtils.cpp
new file mode 100644
index 0000000..e7d0c53
--- /dev/null
+++ b/samplecode/SamplePathUtils.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2013 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 "SkCanvas.h"
+#include "SkPathUtils.h"
+#include "SkView.h"
+//#include "SkPathOps.h" // loads fine here, won't in PathUtils src files
+#include "SkRandom.h"
+#include "SkTime.h"  
+
+class samplePathUtils : public SampleView {
+public:
+    samplePathUtils() {
+        bmp_paint.setAntiAlias(true);  // Black paint for bitmap
+	bmp_paint.setStyle(SkPaint::kFill_Style);
+        bmp_paint.setColor(SK_ColorBLACK);
+    }
+
+protected:
+    static const int numModes = 3;
+    static const int h=8, w=12, stride=2, scale=10; // stride is in bytes
+    static const int numChars = h * stride; // number of chars in entire array
+
+    SkPaint bmp_paint;
+    
+    // overrides from SkEventSink
+    virtual bool onQuery(SkEvent* evt) {
+        if (SampleCode::TitleQ(*evt)) {
+            SampleCode::TitleR(evt, "PathUtils");
+            return true;
+        }
+        return this->INHERITED::onQuery(evt);
+    }
+
+    /////////////////////////////////////////////////////////////
+    
+    virtual void onDrawContent(SkCanvas* canvas) {
+        // bitmap definitions
+        const char bits[numModes][numChars] = {
+            { 0x18, 0x00, 0x3c, 0x00, 0x7e, 0x00, 0xdb, 0x00,
+               0xff, 0x00, 0x24, 0x00, 0x5a, 0x00, 0xa5, 0x00 },
+            
+            { 0x20, 0x80, 0x91, 0x20, 0xbf, 0xa0, 0xee, 0xe0,
+              0xff, 0xe0, 0x7f, 0xc0, 0x20, 0x80, 0x40, 0x40 },
+
+            { 0x0f, 0x00, 0x7f, 0xe0, 0xff, 0xf0, 0xe6, 0x70,
+              0xff, 0xf0, 0x19, 0x80, 0x36, 0xc0, 0xc0, 0x30 }
+        };
+
+        for (int i = 0; i < numModes; ++i) {
+            SkPath path; // generate and simplify each path
+            SkPathUtils::BitsToPath_Path(&path, (char*) &bits[i], h, w, stride);
+            
+            canvas->save(); // DRAWING
+            canvas->scale(scale, scale);  // scales up each bitmap
+            canvas->translate(0, 1.5f * h * i);
+            canvas->drawPath(path, bmp_paint); // draw bitmap
+            canvas->restore();
+            
+            // use the SkRegion method
+            SkPath pathR;
+            SkPathUtils::BitsToPath_Region(&pathR, (char*) &bits[i], h, w, stride);
+            
+            canvas->save();
+            canvas->scale(scale, scale);  // scales up each bitmap
+            canvas->translate(1.5f * w, 1.5f * h * i); // translates past previous bitmap
+            canvas->drawPath(pathR, bmp_paint); // draw bitmap
+            canvas->restore();
+        }
+    }
+    
+private:
+    typedef SkView INHERITED;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+static SkView* MyFactory() { return new samplePathUtils; }
+static SkViewRegister reg(MyFactory)
+;