summaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorBryce Harrington <b.harrington@samsung.com>2014-07-29 15:51:42 -0700
committerBryce Harrington <b.harrington@samsung.com>2014-07-29 15:51:42 -0700
commit92af0cbe996ee6036c19c7f1947fe11bb499c7ba (patch)
tree8448bae7e0cfc52ef27d78a39e271b000fd454ec
parent96fac8c0439ef0b4dd1f0f889a66c61a53542631 (diff)
tests: Add port of the FlashCanvas transform test. Cairo is stubbed.
-rw-r--r--src/cairo-tests/transform.cpp66
-rw-r--r--src/skia-tests/transform.cpp75
2 files changed, 141 insertions, 0 deletions
diff --git a/src/cairo-tests/transform.cpp b/src/cairo-tests/transform.cpp
new file mode 100644
index 0000000..25873cd
--- /dev/null
+++ b/src/cairo-tests/transform.cpp
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2014 © Samsung Research America, Silicon Valley
+ *
+ * Use of this source code is governed by the 3-Clause BSD license
+ * specified in the COPYING file included with this source code.
+ */
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <cairo.h>
+
+#include "caskbench.h"
+#include "caskbench_context.h"
+#include "cairo-shapes.h"
+
+int
+ca_setup_transform(caskbench_context_t *ctx)
+{
+ cairo_set_antialias (ctx->cairo_cr, CAIRO_ANTIALIAS_NONE);
+ cairo_set_line_width (ctx->cairo_cr, 1);
+ return 1;
+}
+
+void
+ca_teardown_transform(void)
+{
+}
+
+int
+ca_test_transform(caskbench_context_t *ctx)
+{
+ int w = ctx->canvas_width;
+ int h = ctx->canvas_height;
+
+ shapes_t shape;
+ shape_copy(&ctx->shape_defaults, &shape);
+ for (int i=0; i<ctx->size; i++) {
+ double x1 = (double)rand()/RAND_MAX * w;
+ double x2 = (double)rand()/RAND_MAX * w;
+ double y1 = (double)rand()/RAND_MAX * h;
+ double y2 = (double)rand()/RAND_MAX * h;
+
+ shape.x = x1;
+ shape.y = y1;
+ shape.width = x1 - x2;
+ shape.height = y1 - y2;
+
+ cairoRandomizeColor(ctx);
+ cairoDrawLine(ctx, &shape);
+ cairo_stroke(ctx->cairo_cr);
+ }
+
+ return 1;
+}
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/skia-tests/transform.cpp b/src/skia-tests/transform.cpp
new file mode 100644
index 0000000..18577cd
--- /dev/null
+++ b/src/skia-tests/transform.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2014 © Samsung Research America, Silicon Valley
+ *
+ * Use of this source code is governed by the 3-Clause BSD license
+ * specified in the COPYING file included with this source code.
+ */
+#include <config.h>
+
+#include <math.h>
+
+#include <SkCanvas.h>
+#include <SkPaint.h>
+#include <SkRect.h>
+
+#include "caskbench.h"
+#include "caskbench_context.h"
+#include "skia-shapes.h"
+
+int
+sk_setup_transform(caskbench_context_t *ctx)
+{
+ ctx->skia_paint->setAntiAlias(false);
+ ctx->skia_paint->setStrokeWidth(1);
+ ctx->skia_paint->setStyle(SkPaint::kStroke_Style);
+ return 1;
+}
+
+void
+sk_teardown_transform(void)
+{
+}
+
+int
+sk_test_transform(caskbench_context_t *ctx)
+{
+ int w = ctx->canvas_width;
+ int h = ctx->canvas_height;
+ SkScalar rotation_delta(0.02*180/M_PI);
+
+ ctx->skia_canvas->save();
+ for (int nn=0; nn<ctx->size; nn++) {
+ for (int i=0; i<w; i+=50) {
+ SkPath p1;
+ p1.moveTo(i, 0);
+ p1.lineTo(i, h);
+ skiaRandomizePaintColor(ctx);
+ ctx->skia_canvas->drawPath(p1, *(ctx->skia_paint));
+ }
+ for (int j=0; j<h; j+=50) {
+ SkPath p2;
+ p2.moveTo(0, j);
+ p2.lineTo(w, j);
+ skiaRandomizePaintColor(ctx);
+ ctx->skia_canvas->drawPath(p2, *(ctx->skia_paint));
+ }
+ ctx->skia_canvas->translate(w/2.0, h/2.0);
+ ctx->skia_canvas->rotate(rotation_delta);
+ ctx->skia_canvas->scale(1.004, 0.996);
+ ctx->skia_canvas->translate(-w/2.0, -h/2.0);
+ }
+ ctx->skia_canvas->restore();
+
+ return 1;
+}
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :