如果你的程序可以画图元,但是不能正常贴图(前提是位图被正确载入),可以考虑在初始化代码里面加入下面的代码
glEnable(GL_TEXTURE_2D);
还有可能的原因是
- 没有设置当前dc. 调用
hDC = ::GetDC(yourhwnd);//替换yourhwn成正确的窗口句柄 .... //注意这里省略了设置pixel format和wglCreateContext的过程 if(!wglMakeCurrent(hDC,hRC)) // 设置当前DC { return false; }
- 没有调用SwapBuffer
- 你用了CompatibleDC. 在用CompatibleDC的情况下你只能得到位图的width, height信息,无法得到bitmap bits, 你可以通过调用GetDIBits来获取正确的内存。