#include ".\skybox.h" SkyBox::SkyBox(void) { } SkyBox::~SkyBox(void) { } void SkyBox::Display(Camera& cam) { glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); cam.SetProjection(); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); cam.setViewforBbox(); /* glRotatef(-cam.m_Orientation.y,0,1,0); glRotatef(360-cam.m_Orientation.x,1,0,0); */ glDepthMask(GL_FALSE); glDisable(GL_DEPTH_TEST); float d=-0.002; glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,m_Textures[0].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(-d,1+d); glVertex3f(-1,-1,-1); glTexCoord2f(-d,-d); glVertex3f(-1,1,-1); glTexCoord2f(1+d,-d); glVertex3f(1,1,-1); glTexCoord2f(1+d,1+d); glVertex3f(1,-1,-1); glEnd(); glBindTexture(GL_TEXTURE_2D,m_Textures[1].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(-d,1+d); glVertex3f(+1,-1,+1); glTexCoord2f(-d,-d); glVertex3f(1,1,1); glTexCoord2f(1+d,-d); glVertex3f(-1,1,1); glTexCoord2f(1+d,1+d); glVertex3f(-1,-1,1); glEnd(); glBindTexture(GL_TEXTURE_2D,m_Textures[4].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(-d,1+d); glVertex3f(-1,-1,1); glTexCoord2f(-d,-d); glVertex3f(-1,1,1); glTexCoord2f(1+d,-d); glVertex3f(-1,1,-1); glTexCoord2f(1+d,1+d); glVertex3f(-1,-1,-1); glEnd(); glBindTexture(GL_TEXTURE_2D,m_Textures[5].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(-d,1+d); glVertex3f(1,-1,-1); glTexCoord2f(-d,-d); glVertex3f(1,1,-1); glTexCoord2f(1+d,-d); glVertex3f(1,1,1); glTexCoord2f(1+d,1+d); glVertex3f(1,-1,1); glEnd(); glBindTexture(GL_TEXTURE_2D,m_Textures[2].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(-d,1+d); glVertex3f(-1,-1,-1); glTexCoord2f(1+d,1+d); glVertex3f(-1,-1,1); glTexCoord2f(1+d,-d); glVertex3f(1,-1,1); glTexCoord2f(-d,-d); glVertex3f(1,-1,-1); glEnd(); glBindTexture(GL_TEXTURE_2D,m_Textures[3].getTextureHandler()); glBegin(GL_QUADS); glTexCoord2f(1+d,-d); glVertex3f(-1,1,1); glTexCoord2f(-d,-d); glVertex3f(-1,1,-1); glTexCoord2f(-d,1+d); glVertex3f(1,1,-1); glTexCoord2f(1+d,1+d); glVertex3f(1,1,1); glEnd(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glDisable(GL_TEXTURE_2D); glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST); } int SkyBox::Initialize(char* filename,char* ext) { char *fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[0].setFilename(strcat(strcat(fname,"back."),ext)); //m_Textures[0].setFilename("test.png"); fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[1].setFilename(strcat(strcat(fname,"front."),ext)); fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[2].setFilename(strcat(strcat(fname,"bottom."),ext)); fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[3].setFilename(strcat(strcat(fname,"top."),ext)); fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[4].setFilename(strcat(strcat(fname,"left."),ext)); fname=new char[20]; fname[0]=NULL; strcat(fname,filename); m_Textures[5].setFilename(strcat(strcat(fname,"right."),ext)); for(int i=0;i<6;i++) { m_Textures[i].LoadImage(); } return true; }