From ae69a754244c4e475c8d2591772ca8e005071d83 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 18 Feb 2019 11:55:41 +0100 Subject: Update to 5.42 --- hacks/glx/mirrorblob.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'hacks/glx/mirrorblob.c') diff --git a/hacks/glx/mirrorblob.c b/hacks/glx/mirrorblob.c index eb746d1..42981bd 100644 --- a/hacks/glx/mirrorblob.c +++ b/hacks/glx/mirrorblob.c @@ -1729,7 +1729,7 @@ draw_mirrorblob(ModeInfo * mi) if (gp->waiting_for_image_p && gp->first_image_p) return; - glXMakeCurrent(display, window, *(gp->glx_context)); + glXMakeCurrent(display, window, *gp->glx_context); draw_scene(mi); if (mi->fps_p) do_fps (mi); glFinish(); @@ -1826,14 +1826,24 @@ ENTRYPOINT void free_mirrorblob(ModeInfo * mi) { mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)]; + int i; + + if (!gp->glx_context) return; + glXMakeCurrent (MI_DISPLAY(mi), MI_WINDOW(mi), *gp->glx_context); + if (gp->nodes) free(gp->nodes); if (gp->faces) free(gp->faces); if (gp->bump_data) free(gp->bump_data); if (gp->colours) free(gp->colours); if (gp->tex_coords) free(gp->tex_coords); if (gp->dots) free(gp->dots); + if (gp->normals) free(gp->normals); if (gp->wall_shape) free(gp->wall_shape); if (gp->bump_shape) free(gp->bump_shape); + if (gp->trackball) gltrackball_free (gp->trackball); + + for (i = 0; i < NUM_TEXTURES; i++) + if (gp->textures[i]) glDeleteTextures(1, &gp->textures[i]); } XSCREENSAVER_MODULE ("MirrorBlob", mirrorblob) -- cgit v1.2.3-55-g7522