diff options
Diffstat (limited to 'src/cairo-image.cpp')
| -rw-r--r-- | src/cairo-image.cpp | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/src/cairo-image.cpp b/src/cairo-image.cpp index 98fe05f..7c47ac8 100644 --- a/src/cairo-image.cpp +++ b/src/cairo-image.cpp @@ -3,30 +3,16 @@ #include <cairo.h> #include <cairo-gl.h> -struct graphics_state { - Display *dpy; - Window window; -}; +#include "image.h" -static void -cleanup (void *data) -{ - struct graphics_state *state = (graphics_state*)data; - - /* - XDestroyWindow (state->dpy, state->window); - XCloseDisplay (state->dpy); - */ - free (state); -} +static image_state_t *state; cairo_surface_t * create_cairo_surface_image (int width, int height) { - struct graphics_state *state; cairo_surface_t *cairo_surface; - state = (graphics_state*) malloc (sizeof (struct graphics_state)); + state = (image_state_t*) malloc (sizeof (image_state_t)); if (!state) { warnx ("Out of memory\n"); return NULL; @@ -44,15 +30,12 @@ create_cairo_surface_image (int width, int height) width, height); - if (cairo_surface_set_user_data (cairo_surface, - (cairo_user_data_key_t *) cleanup, - state, - cleanup)) - { - warnx ("Failed to setup cleanup callback closure\n"); - cleanup (state); - return NULL; - } - return cairo_surface; } + +void +destroy_cairo_image(void) +{ + cleanup_state_image(state); +} + |