summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/gm/selftest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/gm/selftest.cpp')
-rw-r--r--chromium/third_party/skia/gm/selftest.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/chromium/third_party/skia/gm/selftest.cpp b/chromium/third_party/skia/gm/selftest.cpp
new file mode 100644
index 00000000000..a332c5d15d5
--- /dev/null
+++ b/chromium/third_party/skia/gm/selftest.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Pathologically simple drawing tests, designed to generate consistent
+ * output images across platforms for gm/tests/run.sh
+ */
+
+#include "gm.h"
+#include "SkCanvas.h"
+#include "SkPaint.h"
+
+class SelfTestGM : public skiagm::GM {
+public:
+ SelfTestGM(const char name[], SkColor color, uint32_t flags) :
+ fName(name), fColor(color), fFlags(flags) {}
+ const static int kWidth = 300;
+ const static int kHeight = 200;
+
+protected:
+ SkString onShortName() {
+ return fName;
+ }
+
+ SkISize onISize() { return SkISize::Make(kWidth, kHeight); }
+
+ virtual void onDraw(SkCanvas* canvas) {
+ SkPaint paint;
+ paint.setStyle(SkPaint::kFill_Style);
+ paint.setColor(fColor);
+ canvas->drawRectCoords(0, 0, SkIntToScalar(kWidth), SkIntToScalar(kHeight), paint);
+ }
+
+ virtual uint32_t onGetFlags() const { return fFlags; }
+
+private:
+ const SkString fName;
+ const SkColor fColor;
+ const uint32_t fFlags;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+// We use translucent colors to make sure we are properly handling cases like
+// those which caused https://code.google.com/p/skia/issues/detail?id=1079
+// ('gm generating spurious pixel_error messages as of r7258')
+static SkColor kTranslucentGreen = 0x7700EE00;
+static SkColor kTranslucentBlue = 0x770000DD;
+
+static skiagm::GM* F1(void*) {
+ return new SelfTestGM("selftest1", kTranslucentGreen, 0);
+}
+static skiagm::GM* F2(void*) {
+ return new SelfTestGM("selftest2", kTranslucentBlue, skiagm::GM::kSkipPipe_Flag);
+}
+
+static skiagm::GMRegistry gR1(F1);
+static skiagm::GMRegistry gR2(F2);