diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2019-06-12 13:30:19 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2019-06-12 13:30:19 -0700 |
commit | 8ccec1152ef3080c54e76959413d2b16f231cc38 (patch) | |
tree | 40e0091e36e16c4e6a54174c04afc32de40c7bec /src/stage.h | |
parent | efda9aa3f0cee82cc3e2968326cf0df804d7e6d6 (diff) |
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.
Diffstat (limited to 'src/stage.h')
-rw-r--r-- | src/stage.h | 5 |
1 files changed, 3 insertions, 2 deletions
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); |