From 727aeb8f70c9920029a6e19017cce9608673cdb7 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Tue, 10 Feb 2015 18:07:44 -0600 Subject: Fix handling of GGLContext in res_scale_surface Change-Id: I36eb1d5e4f6908bad5ebb1fec692d8510529a14c --- minuitwrp/resources.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/minuitwrp/resources.c b/minuitwrp/resources.c index eef5713a1..680bf56a3 100644 --- a/minuitwrp/resources.c +++ b/minuitwrp/resources.c @@ -365,9 +365,7 @@ void res_free_surface(gr_surface surface) { // Scale image function int res_scale_surface(gr_surface source, gr_surface* destination, float scale_w, float scale_h) { - GGLContext *sc_context = 0; - gglInit(&sc_context); - GGLContext *gl = sc_context; + GGLContext *gl = NULL; GGLSurface* sc_mem_surface = NULL; *destination = NULL; GGLSurface *surface = (GGLSurface*)source; @@ -384,7 +382,8 @@ int res_scale_surface(gr_surface source, gr_surface* destination, float scale_w, } sc_mem_surface->format = surface->format; - // Finish initializing the context + // Initialize the context + gglInit(&gl); gl->colorBuffer(gl, sc_mem_surface); gl->activeTexture(gl, 0); @@ -429,6 +428,8 @@ int res_scale_surface(gr_surface source, gr_surface* destination, float scale_w, // draw / scale the source surface to our target context gl->recti(gl, dx, dy, dx + dw, dy + dh); + gglUninit(gl); + gl = NULL; // put the scaled surface in our destination *destination = (gr_surface*) sc_mem_surface; // free memory used in the source -- cgit v1.2.3