X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fb_draw.c;h=977efbe97ff9096a6b775208ae660eed8c11dccf;hb=5f9c47ca98dd43d8f59b7c27d3fde6edfde4fe21;hp=36b5d73b45528dd2e4141fc00806891536d96d8d;hpb=3f438031d610c7e15fd33876a879b97e290e05fb;p=xscreensaver diff --git a/hacks/glx/b_draw.c b/hacks/glx/b_draw.c index 36b5d73b..977efbe9 100644 --- a/hacks/glx/b_draw.c +++ b/hacks/glx/b_draw.c @@ -17,6 +17,9 @@ typedef struct draw_context { /* When was the last time we created a new bubble? */ int bubble_count; + + glb_data *d; + } draw_context; void * @@ -58,11 +61,6 @@ glb_draw_init(void) c->bubble_count = glb_config.create_bubbles_every; /* Do some GL initialization. */ - glClearColor(glb_config.bg_colour[0], - glb_config.bg_colour[1], - glb_config.bg_colour[2], - glb_config.bg_colour[3]); - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, glb_config.bubble_colour); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, mat_emission); @@ -98,6 +96,8 @@ glb_draw_init(void) glLightfv(GL_LIGHT2, GL_DIFFUSE, light_diffuse[2]); glLightfv(GL_LIGHT2, GL_SPECULAR, light_specular[2]); + c->d = glb_sphere_init(); + return c; } @@ -124,6 +124,9 @@ glb_draw_end(void *cc) delete_bubble(c, i); i--; } + + glb_sphere_end (c->d); + (void) free((void *) c->bubble_list); (void) free((void *) c); } @@ -168,7 +171,7 @@ create_new_bubbles(draw_context * c) /* Create the bubble(s). */ for (i = 0; i < n; ++i) { - if ((b[i] = glb_bubble_new(x, y, z, size, speed, scale_incr)) == 0) { + if ((b[i] = glb_bubble_new(c->d, x, y, z, size, speed, scale_incr)) == 0) { /* Out of memory - recover. */ i--; while (i >= 0) @@ -225,7 +228,7 @@ glb_draw_step(void *cc) void *b = c->bubble_list[i]; glb_bubble_step(b); - glb_bubble_draw(b); + glb_bubble_draw(c->d, b); /* Has the bubble reached the top of the screen? */ if (glb_bubble_get_y(b) >= glb_config.screen_top) {