summaryrefslogtreecommitdiffstats
path: root/hacks/glx/jigsaw.c
diff options
context:
space:
mode:
Diffstat (limited to 'hacks/glx/jigsaw.c')
-rw-r--r--hacks/glx/jigsaw.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/hacks/glx/jigsaw.c b/hacks/glx/jigsaw.c
index 934dbcc..38716e2 100644
--- a/hacks/glx/jigsaw.c
+++ b/hacks/glx/jigsaw.c
@@ -59,7 +59,6 @@
"*suppressRotationAnimation: True\n" \
-# define free_jigsaw 0
# define release_jigsaw 0
#undef countof
#define countof(x) (sizeof((x))/sizeof((*x)))
@@ -1436,7 +1435,7 @@ draw_jigsaw (ModeInfo *mi)
if (!jc->glx_context)
return;
- glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(jc->glx_context));
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *jc->glx_context);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -1504,6 +1503,22 @@ draw_jigsaw (ModeInfo *mi)
glXSwapBuffers(dpy, window);
}
+
+ENTRYPOINT void
+free_jigsaw (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+
+ if (!jc->glx_context) return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *jc->glx_context);
+
+ if (jc->trackball) free (jc->trackball);
+ if (jc->rot) free_rotator (jc->rot);
+ if (jc->texfont) free_texture_font (jc->texfont);
+ free_puzzle_grid (jc);
+ if (glIsList(jc->loading_dlist)) glDeleteLists(jc->loading_dlist, 1);
+}
+
XSCREENSAVER_MODULE ("Jigsaw", jigsaw)
#endif /* USE_GL */