Initial import of Cobalt 2.8885 2016-07-27
diff --git a/src/third_party/skia/gm/imageresizetiled.cpp b/src/third_party/skia/gm/imageresizetiled.cpp
new file mode 100644
index 0000000..d09fd27
--- /dev/null
+++ b/src/third_party/skia/gm/imageresizetiled.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "gm.h"
+#include "SkMatrixImageFilter.h"
+#include "SkRandom.h"
+
+#define WIDTH 640
+#define HEIGHT 480
+
+#define RESIZE_FACTOR SkIntToScalar(2)
+
+namespace skiagm {
+
+class ImageResizeTiledGM : public GM {
+public:
+    ImageResizeTiledGM() {
+    }
+
+protected:
+    virtual uint32_t onGetFlags() const SK_OVERRIDE { return kNoBBH_Flag; }
+
+    virtual SkString onShortName() SK_OVERRIDE {
+        return SkString("imageresizetiled");
+    }
+
+    virtual SkISize onISize() SK_OVERRIDE {
+        return SkISize::Make(WIDTH, HEIGHT);
+    }
+
+    virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
+        SkPaint paint;
+        SkMatrix matrix;
+        matrix.setScale(RESIZE_FACTOR, RESIZE_FACTOR);
+        SkAutoTUnref<SkImageFilter> imageFilter(
+            SkMatrixImageFilter::Create(matrix, SkPaint::kNone_FilterLevel));
+        paint.setImageFilter(imageFilter.get());
+        const SkScalar tile_size = SkIntToScalar(100);
+        SkRect bounds;
+        canvas->getClipBounds(&bounds);
+        for (SkScalar y = 0; y < HEIGHT; y += tile_size) {
+            for (SkScalar x = 0; x < WIDTH; x += tile_size) {
+                canvas->save();
+                canvas->clipRect(SkRect::MakeXYWH(x, y, tile_size, tile_size));
+                canvas->scale(SkScalarInvert(RESIZE_FACTOR),
+                              SkScalarInvert(RESIZE_FACTOR));
+                canvas->saveLayer(NULL, &paint);
+                const char* str[] = {
+                    "The quick",
+                    "brown fox",
+                    "jumped over",
+                    "the lazy dog.",
+                };
+                SkPaint textPaint;
+                textPaint.setAntiAlias(true);
+                sk_tool_utils::set_portable_typeface(&textPaint);
+                textPaint.setTextSize(SkIntToScalar(100));
+                int posY = 0;
+                for (unsigned i = 0; i < SK_ARRAY_COUNT(str); i++) {
+                    posY += 100;
+                    canvas->drawText(str[i], strlen(str[i]), SkIntToScalar(0),
+                                     SkIntToScalar(posY), textPaint);
+                }
+                canvas->restore();
+                canvas->restore();
+            }
+        }
+    }
+
+private:
+    typedef GM INHERITED;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+DEF_GM(return new ImageResizeTiledGM(); )
+
+}