Fix handling of GGLContext in res_scale_surface

Change-Id: I36eb1d5e4f6908bad5ebb1fec692d8510529a14c
diff --git a/minuitwrp/resources.c b/minuitwrp/resources.c
index eef5713..680bf56 100644
--- a/minuitwrp/resources.c
+++ b/minuitwrp/resources.c
@@ -365,9 +365,7 @@
 
 // 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 @@
     }
     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 @@
 
     // 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