diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cairo-tests/transform.cpp | 66 | ||||
| -rw-r--r-- | src/skia-tests/transform.cpp | 75 |
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 : |