diff options
author | Thomas White <taw@bitwiz.org.uk> | 2013-02-01 23:43:22 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2013-02-01 23:43:22 +0100 |
commit | 36191c9579ca94eedcd54d4127b08a684e670a0b (patch) | |
tree | 7a384952c59e92a25d2a32d343290d635c9f80e9 /src/render.c | |
parent | a1f6a1a06287421ddee2a1e68f88f52fd6e161dd (diff) |
Slide change logic
Diffstat (limited to 'src/render.c')
-rw-r--r-- | src/render.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/render.c b/src/render.c index 2405c10..cd253c3 100644 --- a/src/render.c +++ b/src/render.c @@ -569,7 +569,6 @@ void recursive_buffer_free(struct frame *fr) void free_render_buffers(struct slide *s) { - recursive_buffer_free(s->top); if ( s->rendered_edit != NULL ) cairo_surface_destroy(s->rendered_edit); if ( s->rendered_proj != NULL ) cairo_surface_destroy(s->rendered_proj); if ( s->rendered_thumb != NULL ) { @@ -582,6 +581,17 @@ void free_render_buffers(struct slide *s) } +void free_render_buffers_except_thumb(struct slide *s) +{ + if ( s->rendered_edit != NULL ) cairo_surface_destroy(s->rendered_edit); + if ( s->rendered_proj != NULL ) cairo_surface_destroy(s->rendered_proj); + + s->rendered_edit = NULL; + s->rendered_proj = NULL; +} + + + static void do_composite(struct frame *fr, cairo_t *cr) { if ( fr->contents == NULL ) return; @@ -666,6 +676,7 @@ cairo_surface_t *render_slide(struct slide *s, int w, int h) composite_slide(s, cr); cairo_destroy(cr); + recursive_buffer_free(s->top); return surf; } |