diff options
author | Simon Rettberg | 2019-02-18 11:55:58 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-02-18 11:55:58 +0100 |
commit | aa7530630e595b80d5db54655fd827b61edc0fd7 (patch) | |
tree | 048cb74072450c7592f254c3537ac8f252d09d73 /hacks/glx/skytentacles.c | |
parent | Forgot one DPMS killing instance (diff) | |
parent | Update to 5.42 (diff) | |
download | xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.tar.gz xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.tar.xz xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.zip |
Merge branch 'master' into openslxv23
Diffstat (limited to 'hacks/glx/skytentacles.c')
-rw-r--r-- | hacks/glx/skytentacles.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/hacks/glx/skytentacles.c b/hacks/glx/skytentacles.c index 1061482..272a447 100644 --- a/hacks/glx/skytentacles.c +++ b/hacks/glx/skytentacles.c @@ -14,7 +14,6 @@ "*showFPS: False \n" \ "*wireframe: False \n" \ -# define free_tentacles 0 # define release_tentacles 0 #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -90,7 +89,6 @@ typedef struct { GLuint texid; Bool left_p; - } tentacles_configuration; @@ -994,7 +992,7 @@ draw_tentacles (ModeInfo *mi) if (!tc->glx_context) return; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tc->glx_context)); + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *tc->glx_context); glShadeModel(GL_SMOOTH); @@ -1098,6 +1096,30 @@ draw_tentacles (ModeInfo *mi) glXSwapBuffers(dpy, window); } + +ENTRYPOINT void +free_tentacles (ModeInfo *mi) +{ + tentacles_configuration *tc = &tcs[MI_SCREEN(mi)]; + int i, j; + + if (!tc->glx_context) return; + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *tc->glx_context); + + for (i = 0; i < tc->ntentacles; i++) { + for (j = 0; j < tc->tentacles[i]->nsegments; j++) + free_rotator (tc->tentacles[i]->segments[j].rot); + free (tc->tentacles[i]->segments); + free (tc->tentacles[i]); + } + if (tc->tentacles) free (tc->tentacles); + if (tc->torus_points) free (tc->torus_points); + if (tc->torus_normals) free (tc->torus_normals); + if (tc->texture) XDestroyImage (tc->texture); + if (tc->trackball) gltrackball_free (tc->trackball); + if (tc->texid) glDeleteTextures (1, &tc->texid); +} + XSCREENSAVER_MODULE_2 ("SkyTentacles", skytentacles, tentacles) #endif /* USE_GL */ |