diff options
Diffstat (limited to 'hacks/glx/cityflow.c')
-rw-r--r-- | hacks/glx/cityflow.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/hacks/glx/cityflow.c b/hacks/glx/cityflow.c index 2b3bd4f..a6660af 100644 --- a/hacks/glx/cityflow.c +++ b/hacks/glx/cityflow.c @@ -14,7 +14,6 @@ "*showFPS: False \n" \ "*wireframe: False \n" \ -# define free_cube 0 # define release_cube 0 #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -381,7 +380,7 @@ draw_cube (ModeInfo *mi) return; mi->polygon_count = 0; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context)); + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *cc->glx_context); interference (mi); animate_cubes (mi); @@ -540,6 +539,24 @@ draw_cube (ModeInfo *mi) } +ENTRYPOINT void +free_cube (ModeInfo *mi) +{ + cube_configuration *cc = &ccs[MI_SCREEN(mi)]; + if (!cc->glx_context) return; + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *cc->glx_context); + + if (cc->waves) { + free (cc->waves->srcs); + free (cc->waves->heights); + free (cc->waves); + } + if (cc->trackball) gltrackball_free (cc->trackball); + if (cc->cubes) free (cc->cubes); + if (cc->colors) free (cc->colors); +} + + XSCREENSAVER_MODULE_2 ("Cityflow", cityflow, cube) #endif /* USE_GL */ |