void DrawGLScene()
{
double deltat;
deltat=GetTime();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
DrawSkybox(0.0f,0.0f,0.0f);
CalculateNewPos((float)deltat);
glRotatef(my_position.rot_x,1.0f,0.0f,0.0f);
glRotatef(my_position.rot_y,0.0f,1.0f,0.0f);
glTranslatef(-my_position.x,-my_position.x,-my_position.x);
DrawSkybox(0.0f,0.0f,0.0f); //problem here ?
glPushMatrix();
glTranslatef(EARTH->x,EARTH->y,EARTH->z);
ShowObject(EARTH->model);
glPopMatrix();
glPushMatrix();
glDisable(GL_CULL_FACE);
glTranslatef(0.0f,0.0f,5.0f);
glBegin(GL_TRIANGLES);
glVertex3f(-2.0f,-2.0f,0.0f);
glVertex3f(2.0f,-2.0f,0.0f);
glVertex3f(0.0f,2.0f,0.0f);
glEnd();
glEnable(GL_CULL_FACE);
glPopMatrix();
glPushMatrix();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(-1.0f,1.0f,-1.0,1.0f,-1.0f,1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(1.0f,1.0f,1.0f);
glTranslatef(-0.9f,0.9f,0.0f);
glScalef(0.05f,0.05f,0.5f);
glPrint(10.0f,50.0f,0.0f,"x"); //problem here?
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
}
void DrawSkybox(float x,float y,float z)
{
glEnable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST); //disables depth test
glDepthMask(0); //so skybox will never cover any geometry
glBindTexture(GL_TEXTURE_2D,skybox_texture_id);
glBegin(GL_QUADS);
glColor3f(0.25f,0.59f,0.78f);
glTexCoord2f(0.0f,1.0f); // front face
glVertex3f(-300.0f+x,-300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(300.0f+x,-300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(0.0f,1.0f); // left face
glVertex3f(-300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(-300.0f+x,-300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(-300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,1.0f); // right face
glVertex3f(300.0f+x,-300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(0.0f,1.0f); // back face
glVertex3f(300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(-300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(-300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,1.0f); // upper face
glVertex3f(-300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(300.0f+x,300.0f+y,-300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-300.0f+x,300.0f+y,300.0f+z);
glTexCoord2f(0.0f,1.0f); // lower face
glVertex3f(-300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,1.0f);
glVertex3f(300.0f+x,-300.0f+y,300.0f+z);
glTexCoord2f(1.0f,0.0f);
glVertex3f(300.0f+x,-300.0f+y,-300.0f+z);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-300.0f+x,-300.0f+y,-300.0f+z);
glEnd();
glDepthMask(1);
glEnable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
}