-#if !defined( lint ) && !defined( SABER )
+#if 0
static const char sccsid[] = "@(#)b_draw.c 4.11 98/06/16 xlockmore";
-
#endif
/*-
/* When was the last time we created a new bubble? */
int bubble_count;
+
+ glb_data *d;
+
} draw_context;
void *
glb_config.bg_colour[1],
glb_config.bg_colour[2],
glb_config.bg_colour[3]);
-#if 0
+
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, glb_config.bubble_colour);
-#else
- {
- /*
- * E. Lassauge - 98/06/29
- * Yeahh, cool ! Now that I know how to have random colors I
- * patch this pretty beautiful mode too !!
- */
- GLfloat fred, fgreen, fblue;
- GLfloat params[4];
-
- fred = ((float) (NRAND(100)) / 100.0);
- fgreen = ((float) (NRAND(100)) / 100.0);
- /* I keep more blue */
- fblue = ((float) (NRAND(50)) / 100.0) + 0.50;
-
- params[0] = fred;
- params[1] = fgreen;
- params[2] = fblue;
- /* For the moment don't play with ALPHA channel */
- params[3] = glb_config.bubble_colour[3];
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, params);
- }
-#endif
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, mat_emission);
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
-#if GLB_USE_BLENDING
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-#endif
+ if (glb_config.transparent_p)
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHT2);
-#if GLB_USE_BLENDING
- glEnable(GL_BLEND);
-#else
- glEnable(GL_DEPTH_TEST);
-#endif
+
+ if (glb_config.transparent_p)
+ glEnable(GL_BLEND);
+ else
+ glEnable(GL_DEPTH_TEST);
+
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
-#if GLB_USE_BLENDING
- glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
-#endif
+ if (glb_config.transparent_p)
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);
glLightfv(GL_LIGHT0, GL_POSITION, light_position[0]);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse[0]);
glLightfv(GL_LIGHT2, GL_DIFFUSE, light_diffuse[2]);
glLightfv(GL_LIGHT2, GL_SPECULAR, light_specular[2]);
+ c->d = glb_sphere_init();
+
return c;
}
delete_bubble(c, i);
i--;
}
+
+ glb_sphere_end (c->d);
+
(void) free((void *) c->bubble_list);
(void) free((void *) 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)
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) {