summaryrefslogtreecommitdiffstats
path: root/libdimension/canvas.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2014-04-26 19:07:45 -0400
committerTavian Barnes <tavianator@tavianator.com>2014-04-26 19:07:45 -0400
commit3f949f8a9705972a4b61532602814b5b47d1a328 (patch)
tree1abe46ba981dbe2f0a4863afb20b32ead6646721 /libdimension/canvas.c
parent48d08d21106545d1f27a9fd5a787a12c9dcf7d7c (diff)
downloaddimension-3f949f8a9705972a4b61532602814b5b47d1a328.tar.xz
canvas: Avoid copying entire dmnsn_canvas_optimizer structs.
Diffstat (limited to 'libdimension/canvas.c')
-rw-r--r--libdimension/canvas.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libdimension/canvas.c b/libdimension/canvas.c
index 8671402..c7c1994 100644
--- a/libdimension/canvas.c
+++ b/libdimension/canvas.c
@@ -60,9 +60,10 @@ dmnsn_delete_canvas(dmnsn_canvas *canvas)
/* Set a canvas optimizer */
void
-dmnsn_canvas_optimize(dmnsn_canvas *canvas, dmnsn_canvas_optimizer optimizer)
+dmnsn_canvas_optimize(dmnsn_canvas *canvas,
+ const dmnsn_canvas_optimizer *optimizer)
{
- dmnsn_array_push(canvas->optimizers, &optimizer);
+ dmnsn_array_push(canvas->optimizers, optimizer);
}
/* Set the value of a pixel */
@@ -79,7 +80,7 @@ dmnsn_canvas_set_pixel(dmnsn_canvas *canvas, size_t x, size_t y,
/* Call the optimizers */
DMNSN_ARRAY_FOREACH (dmnsn_canvas_optimizer *, i, canvas->optimizers) {
- i->optimizer_fn(canvas, *i, x, y);
+ i->optimizer_fn(canvas, i->ptr, x, y);
}
}