From 8ccec1152ef3080c54e76959413d2b16f231cc38 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Wed, 12 Jun 2019 13:30:19 -0700 Subject: libstage: introduce prepare_func and prepare pass This effectively makes rendering two passes, with a first pass giving stage nodes an opportunity to maintain caches or other preparatory steps before actual rendering. --- src/stage.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/stage.h') diff --git a/src/stage.h b/src/stage.h index a2a2543..2b5cc91 100644 --- a/src/stage.h +++ b/src/stage.h @@ -22,12 +22,13 @@ typedef struct stage_t stage_t; +typedef void (stage_prepare_func_t)(stage_t *stage, void *object, float alpha, void *render_ctxt); typedef void (stage_render_func_t)(const stage_t *stage, void *object, float alpha, void *render_ctxt); typedef void (stage_free_func_t)(const stage_t *stage, void *object); typedef stage_t * (stage_lookup_func_t)(const stage_t *stage, void *object, void *key); -stage_t * stage_new(stage_t *parent, int layer, const char *name, void *object, stage_render_func_t *render_func, stage_free_func_t *free_func, stage_lookup_func_t *lookup_func); -void stage_replace(stage_t *stage, const char *name, void *object, stage_render_func_t *render_func, stage_free_func_t *free_func, stage_lookup_func_t *lookup_func); +stage_t * stage_new(stage_t *parent, int layer, const char *name, void *object, stage_prepare_func_t *prepare_func, stage_render_func_t *render_func, stage_free_func_t *free_func, stage_lookup_func_t *lookup_func); +void stage_replace(stage_t *stage, const char *name, void *object, stage_prepare_func_t *prepare_func, stage_render_func_t *render_func, stage_free_func_t *free_func, stage_lookup_func_t *lookup_func); stage_t * stage_free(stage_t *stage); int stage_render(stage_t *stage, void *render_ctxt); void stage_dirty(stage_t *stage); -- cgit v1.2.3