X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fenergystream.c;h=3136a2435d5c38dd0c9e819e46c362b5acd3aecd;hp=642a1a1f21944442276af06bfa6a2769edda7407;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=d6b0217f2417bd19187f0ebc389d6c5c2233b11c diff --git a/hacks/glx/energystream.c b/hacks/glx/energystream.c index 642a1a1f..3136a243 100644 --- a/hacks/glx/energystream.c +++ b/hacks/glx/energystream.c @@ -18,6 +18,7 @@ "*wireframe: False \n" \ # define refresh_stream 0 +# define release_stream 0 #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -307,22 +308,15 @@ static void render_flare_stream (flare_stream *s, float cur_time, Vector *vx, Ve glEnd (); } +static void free_stream (ModeInfo * mi); + ENTRYPOINT void init_stream (ModeInfo *mi) { stream_configuration *es; streamtime current_time; - if (!ess) - { - ess = (stream_configuration *) - calloc (MI_NUM_SCREENS(mi), sizeof (stream_configuration)); - if (!ess) - { - fprintf (stderr, "%s: out of memory\n", progname); - exit (1); - } - } + MI_INIT (mi, ess, free_stream); es = &ess[MI_SCREEN(mi)]; @@ -370,15 +364,14 @@ init_stream (ModeInfo *mi) } } -ENTRYPOINT void -release_stream (ModeInfo * mi) +static void +free_stream (ModeInfo * mi) { - int screen; + stream_configuration *es = &ess[MI_SCREEN(mi)]; + int i; - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) - { - stream_configuration *es = &ess[screen]; - int i; + if (es->glx_context) { + glXMakeCurrent (MI_DISPLAY(mi), MI_WINDOW(mi), *(es->glx_context)); for (i = 0; i < es->num_streams; i++) { free (es->streams[i].flares); @@ -387,8 +380,6 @@ release_stream (ModeInfo * mi) free (es->streams); } - - FreeAllGL (mi); }