Beispiel #1
0
static int
NextSuperquadricDisplay(ModeInfo *mi)
{
	superquadricsstruct *sp = &superquadrics[MI_SCREEN(mi)];
	NextSuperquadric(sp);
	return DisplaySuperquadrics(mi);
}
ENTRYPOINT void
init_superquadrics(ModeInfo * mi)
{
	Display    *display = MI_DISPLAY(mi);
	Window      window = MI_WINDOW(mi);
	int         screen = MI_SCREEN(mi);

	superquadricsstruct *sp;

	if (superquadrics == NULL) {
		if ((superquadrics = (superquadricsstruct *) calloc(MI_NUM_SCREENS(mi),
				      sizeof (superquadricsstruct))) == NULL)
			return;
	}
	sp = &superquadrics[screen];
	sp->mono = (MI_IS_MONO(mi) ? 1 : 0);

    sp->pats[1][1] = 1;
    sp->pats[1][3] = 1;
    sp->pats[2][2] = 1;
    sp->pats[2][3] = 1;
    sp->pats[3][1] = 1;
    sp->pats[3][2] = 1;

/*		{0, 0, 0, 0},
		{0, 1, 0, 1},
		{0, 0, 1, 1},
		{0, 1, 1, 0}
 */

	if ((sp->glx_context = init_GL(mi)) != NULL) {

		InitSuperquadrics(MI_IS_WIREFRAME(mi), 0,
				  MI_COUNT(mi), MI_CYCLES(mi), spinspeed, sp);
		ReshapeSuperquadrics(MI_WIDTH(mi), MI_HEIGHT(mi));

		DisplaySuperquadrics(sp);
		glFinish();
		glXSwapBuffers(display, window);
	} else {
		MI_CLEARWINDOW(mi);
	}
}
static int
NextSuperquadricDisplay(superquadricsstruct * sp)
{
	NextSuperquadric(sp);
	return DisplaySuperquadrics(sp);
}