summaryrefslogtreecommitdiffstatsci
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cairo-shapes.cpp15
-rw-r--r--src/cairo-shapes.h2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/cairo-shapes.cpp b/src/cairo-shapes.cpp
index 50ce77b..28320ae 100644
--- a/src/cairo-shapes.cpp
+++ b/src/cairo-shapes.cpp
@@ -230,7 +230,20 @@ cairoDrawRoundedRectangle (caskbench_context_t *ctx, shapes_t *args)
#endif
}
-cairo_surface_t *cairoCreateSampleImage (caskbench_context_t *ctx)
+cairo_surface_t *
+cairoCacheImageSurface(caskbench_context_t *ctx, cairo_surface_t *image)
+{
+ cairo_surface_t *cached_image;
+ cached_image = cairo_surface_create_similar (cairo_get_target(ctx->cairo_cr), CAIRO_CONTENT_COLOR_ALPHA, 160, 40);
+ cairo_t *cached_cr = cairo_create (cached_image);
+ cairo_set_source_surface (cached_cr, image, 0, 0);
+ cairo_paint (cached_cr);
+ cairo_destroy (cached_cr);
+ return cached_image;
+}
+
+cairo_surface_t *
+cairoCreateSampleImage (caskbench_context_t *ctx)
{
cairo_surface_t *image;
cairo_t *cr_image;
diff --git a/src/cairo-shapes.h b/src/cairo-shapes.h
index e7247c5..194ee13 100644
--- a/src/cairo-shapes.h
+++ b/src/cairo-shapes.h
@@ -33,6 +33,8 @@ void cairoDrawQuadraticCurve(caskbench_context_t *ctx, shapes_t *args);
cairo_surface_t *cairoCreateSampleImage (caskbench_context_t *ctx);
+cairo_surface_t *cairoCacheImageSurface(caskbench_context_t *ctx, cairo_surface_t *image);
+
extern void (*cairoShapes[CB_SHAPE_END-1])(caskbench_context_t *ctx , shapes_t *args);
void cairoDrawRandomizedShape(caskbench_context_t *ctx, shapes_t *shape);