diff options
Diffstat (limited to 'hacks/glx/splodesic.c')
-rw-r--r-- | hacks/glx/splodesic.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/hacks/glx/splodesic.c b/hacks/glx/splodesic.c index 2823133..a68e992 100644 --- a/hacks/glx/splodesic.c +++ b/hacks/glx/splodesic.c @@ -575,7 +575,7 @@ draw_splodesic (ModeInfo *mi) if (!bp->glx_context) return; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context)); + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context); glShadeModel(GL_SMOOTH); @@ -627,12 +627,19 @@ ENTRYPOINT void free_splodesic (ModeInfo *mi) { splodesic_configuration *bp = &bps[MI_SCREEN(mi)]; + + if (!bp->glx_context) return; + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context); + while (bp->triangles) { triangle *t = bp->triangles->next; free (bp->triangles); bp->triangles = t; } + if (bp->trackball) gltrackball_free (bp->trackball); + if (bp->rot) free_rotator (bp->rot); + if (bp->colors) free (bp->colors); } XSCREENSAVER_MODULE ("Splodesic", splodesic) |