- /* draw the bottom, too */
- glNormal3f(0.0, -1.0, 0.0);
- glVertex3f(i, 0.0, j);
- glVertex3f(i + 1.0, 0.0, j);
- glVertex3f(i + 1.0, 0.0, j + 1.0);
+ glColorMask(1, 1, 1, 1);
+ glStencilFunc(GL_EQUAL, 1, 1);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
+
+ glPushMatrix();
+ glScalef(1.0, -1.0, 1.0);
+ glTranslatef(0.5, 0.001, 0.5);
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+ polys += drawPieces(qs);
+ glPopMatrix();
+ glDisable(GL_STENCIL_TEST);
+
+ /* replace lights */
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glColorMask(1,1,1,1);
+ return polys;
+}
+
+/* draw board */
+static int drawBoard(Queenscreen *qs)
+{
+ int i, j;
+ int polys = 0;
+
+ glBegin(GL_QUADS);
+
+ for(i = 0; i < qs->BOARDSIZE; ++i)
+ for(j = 0; j < qs->BOARDSIZE; ++j) {
+ int par = (i-j+qs->BOARDSIZE)%2;
+ glColor4f(colors[qs->colorset][par][0],
+ colors[qs->colorset][par][1],
+ colors[qs->colorset][par][2],
+ 0.70);
+ glNormal3f(0.0, 1.0, 0.0);