static void drawModels(float zScale) { const int translationScale = 9; int x, y; seedRandom(9); //glScalex(1 << 16, 1 << 16, (GLfixed)(zScale * 65536)); for (y = -5; y <= 5; ++y) { for (x = -5; x <= 5; ++x) { float buildingScale; GLfixed fixedScale; int curShape = randomUInt() % SUPERSHAPE_COUNT; buildingScale = sSuperShapeParams[curShape][SUPERSHAPE_PARAMS - 1]; fixedScale = (GLfixed)(buildingScale * 65536); #if 0 glPushMatrix(); glTranslatex((x * translationScale) * 65536, (y * translationScale) * 65536, 0); glRotatex((GLfixed)((randomUInt() % 360) << 16), 0, 0, 1 << 16); glScalex(fixedScale, fixedScale, fixedScale); drawGLObject(sSuperShapeObjects[curShape]); glPopMatrix(); #endif } } for (x = -2; x <= 2; ++x) { const int shipScale100 = translationScale * 500; const int offs100 = x * shipScale100 + (sTick % shipScale100); float offs = offs100 * 0.01f; GLfixed fixedOffs = (GLfixed)(offs * 65536); #if 0 glPushMatrix(); glTranslatex(fixedOffs, -4 * 65536, 2 << 16); drawGLObject(sSuperShapeObjects[SUPERSHAPE_COUNT - 1]); glPopMatrix(); glPushMatrix(); glTranslatex(-4 * 65536, fixedOffs, 4 << 16); glRotatex(90 << 16, 0, 0, 1 << 16); drawGLObject(sSuperShapeObjects[SUPERSHAPE_COUNT - 1]); glPopMatrix(); #endif } }
static void drawModels(float zScale) { const int translationScale = 9; int x, y; seedRandom(9); glScalef(1.f, 1.f, zScale); for (y = -5; y <= 5; ++y) { for (x = -5; x <= 5; ++x) { float buildingScale; int curShape = randomUInt() % SUPERSHAPE_COUNT; buildingScale = sSuperShapeParams[curShape][SUPERSHAPE_PARAMS - 1]; glPushMatrix(); glTranslatef(x * translationScale, y * translationScale, 0); { int rv = randomUInt() % 360; // printf("rv=%d\n", rv); glRotatef(rv, 0.f, 0.f, 1.f); } // glRotatef(randomUInt() % 360, 0.f, 0.f, 1.f); glScalef(buildingScale, buildingScale, buildingScale); drawGLObject(sSuperShapeObjects[curShape]); glPopMatrix(); } } for (x = -2; x <= 2; ++x) { const int shipScale100 = translationScale * 500; const int offs100 = x * shipScale100 + (sTick % shipScale100); float offs = offs100 * 0.01f; // GLfixed fixedOffs = (GLfixed)(offs * 65536); glPushMatrix(); // glTranslatex(fixedOffs, -4 * 65536, 2 << 16); glTranslatef(offs, -4.f, 2.f); drawGLObject(sSuperShapeObjects[SUPERSHAPE_COUNT - 1]); glPopMatrix(); glPushMatrix(); // glTranslatex(-4 * 65536, fixedOffs, 4 << 16); glTranslatef(-4.f, offs, 4.f); // glRotatex(90 << 16, 0, 0, 1 << 16); glRotatef(90.f, 0.f, 0.f, 1.f); drawGLObject(sSuperShapeObjects[SUPERSHAPE_COUNT - 1]); glPopMatrix(); } }
static void drawGroundPlane() { glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_ZERO, GL_SRC_COLOR); glDisable(GL_LIGHTING); drawGLObject(sGroundPlane); glEnable(GL_LIGHTING); glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); }