void SetupRC(void) { BYTE *pBytes; int nWidth, nHeight; SetDCPixelFormat(hDC); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); // Set background clearing color to blue glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glEnable(GL_TEXTURE_2D); glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); pSphere = gluNewQuadric(); gluQuadricDrawStyle(pSphere, GLU_FILL); gluQuadricNormals(pSphere, GLU_NONE); gluQuadricTexture(pSphere, GLU_TRUE); pBytes = gltResourceBMPBits(IDB_EARTH, &nWidth, &nHeight); glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE, GL_DECAL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); }
int CGLWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // Get the device context m_hDC = ::GetDC(this->m_hWnd); // Set the Pixel Format SetPixelFormat(m_hDC, m_nPixelFormat, NULL); // Create the rendering context and make it current m_hRC = wglCreateContext(m_hDC); if(m_hRC != NULL) wglMakeCurrent(m_hDC, m_hRC); // Setup the context if(m_hRC != NULL) { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glGenTextures(6, m_Sides); glEnable(GL_TEXTURE_2D); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); BYTE *pBytes; int nWidth, nHeight; glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE, GL_REPLACE); // Load the texture objects pBytes = gltResourceBMPBits(IDB_BITMAP1, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); pBytes = gltResourceBMPBits(IDB_BITMAP2, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[1]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); pBytes = gltResourceBMPBits(IDB_BITMAP3, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[2]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); pBytes = gltResourceBMPBits(IDB_BITMAP4, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[3]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); pBytes = gltResourceBMPBits(IDB_BITMAP5, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[4]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); pBytes = gltResourceBMPBits(IDB_BITMAP6, &nWidth, &nHeight); glBindTexture(GL_TEXTURE_2D, m_Sides[5]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexImage2D(GL_TEXTURE_2D,0,GL_RGB8,nWidth, nHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pBytes); } SetTimer(101, 30, NULL); return 0; }