diff options
Diffstat (limited to 'hacks/glx/jigsaw.c')
-rw-r--r-- | hacks/glx/jigsaw.c | 19 |
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 */ |