/* rubik --- Shows a auto-solving Rubik's cube */
#if !defined( lint ) && !defined( SABER )
-static const char sccsid[] = "@(#)rubik.c 4.04 97/07/28 xlockmore";
+static const char sccsid[] = "@(#)rubik.c 4.07 97/11/24 xlockmore";
#endif
ModeSpecOpt rubik_opts =
{2, opts, 1, vars, desc};
+#ifdef USE_MODULES
+ModStruct rubik_description =
+{"rubik", "init_rubik", "draw_rubik", "release_rubik",
+ "draw_rubik", "change_rubik", NULL, &rubik_opts,
+ 1000, -30, 5, -6, 1.0, "",
+ "Shows an auto-solving Rubik's Cube", 0, NULL};
+
+#endif
+
#define VectMul(X1,Y1,Z1,X2,Y2,Z2) (Y1)*(Z2)-(Z1)*(Y2),(Z1)*(X2)-(X1)*(Z2),(X1)*(Y2)-(Y1)*(X2)
#define sqr(A) ((A)*(A))
RubikLoc *rowLoc[MAXORIENT];
RubikMove movement;
GLfloat rotatestep;
- GLXContext glx_context;
+ GLXContext *glx_context;
int AreObjectsDefined[1];
} rubikstruct;
glVertex3f(-0.35, 0.51, -0.40);
glEnd();
}
- glEnd();
}
reshape(mi, MI_WIN_WIDTH(mi), MI_WIN_HEIGHT(mi));
objects = glGenLists(1);
pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
}
}
return;
glDrawBuffer(GL_BACK);
- glXMakeCurrent(display, window, rp->glx_context);
+ glXMakeCurrent(display, window, *(rp->glx_context));
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
(void) free((void *) rubik);
rubik = NULL;
}
- FreeAllGL(MI_DISPLAY(mi));
+ FreeAllGL(mi);
}
#endif