|
|
初学,急需显示纹理功能,哪位帮忙看一下下面的代码的问题在哪? 为什么总是显示一块白色区域,不能正确显示图片。谢谢!
- bool InitTexture()
- {
- texture = new GLuint;
- SDL_Surface *pBitmap = NULL;
- pBitmap = SDL_LoadBMP("1.bmp");
- if(pBitmap == NULL)
- {
- return false;
- }
- glGenTextures(1, texture);
- glBindTexture(GL_TEXTURE_2D, *texture);
- glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, 3, pBitmap->w, pBitmap->h, 0, GL_RGB, GL_UNSIGNED_BYTE, pBitmap->pixels);
- SDL_FreeSurface(pBitmap);
- return true;
- }
- void C3DEngine::DrawSample()
- {
- glEnable(GL_TEXTURE_2D);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLoadIdentity();
- glTranslatef(0.0f,0.0f,0.0f);
- glBlendFunc(GL_DST_COLOR,GL_ZERO);
- glBindTexture(GL_TEXTURE_2D, *texture); glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(-0.4f,-0.4f,-0.1f);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.4f,+0.4f,-0.1f);
- glTexCoord2f(1.0f, 1.0f); glVertex3f(0.4f,+0.4f,-0.1f);
- glTexCoord2f(1.0f, 0.0f); glVertex3f(0.4f,-0.4f,-0.1f);
- glEnd();
- }
复制代码 |
|