void BatchedSprite::render() { if (!_static) { create_buffer(); } else { render_static(); } }
// Renders scene in either GLU_BACK_LEFT or GLU_BACK_RIGHT buffer void Render (int side) { if (side == 1) { for (int i = 0; i < 6; i++) { f[i] = sterioObj.FrustumLeft[i]; } for (int i = 0; i < 9; i++) { l[i] = sterioObj.LookAtLeft[i]; } } else { for (int i = 0; i < 6; i++) { f[i] = sterioObj.FrustumRight[i]; } for (int i = 0; i < 9; i++) { l[i] = sterioObj.LookAtRight[i]; } } glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustumf(f[0],f[1],f[2],f[3],f[4],f[5]); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7], l[8]); // draw the array of cubes at varying positions across the screen // rotating centre cube glTranslatef (0.0f, 0.0f, -1500.0f); // x, y, z glPushMatrix(); glTranslatef (-60.0f, 0.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (-60.0f, -30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (60.0f, 0.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (60.0f, 30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (0.0f, -30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (0.0f, 30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (-60.0f, 30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (60.0f, -30.0f, 0.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); glPushMatrix(); glTranslatef (0.0f, 0.0f, 1000.0f); // x, y, z glRotatef(XRotate,0.1, 0.1, 0.8); render_static(); glPopMatrix(); }