OpenGL 纹理代理
2010-03-26 10:03
302 查看
一直认为,对于同一台电脑(尤其是显卡不变),OpenGL所支持的纹理图像是不变的。 但是,实际并非如此。 在同一个程序里,假如此时支持1024×768的纹理, 那么换了一个context, 就可能支持800×600的纹理了。 所以每次使用之前,都要测试一下。 关于测试的方法, OpenGL红宝书上给出了使用纹理代理的方法。
void drawtext() { GLint maxTexWidth = 0; GLint maxTexHeight = 0; glTexImage2D(GL_PROXY_TEXTURE_2D, 0, 2, allocw, alloch,0, GL_ALPHA,GL_UNSIGNED_BYTE, NULL); /*allocw是希望支持的纹理宽度,alloch是希望支持的纹理高度。此处最后一个参数设为NULL,不需要给出真正的data*/ glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &maxTexWidth); /*如果maxTexWidth==0,就说明当前Context不支持allocw的宽度*/ glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &maxTexHeight);/*如果maxTexHeight==0,就说明当前Context不支持alloch的高度*/ if (( maxTexWidth == 0 ) || ( maxTexHeight == 0 )) { /*此处代码应为拆分纹理。 把纹理的高度减半或者宽度减半。 然后递归调用本函数*/ return; } /*以下应为正常使用纹理代码*/ }
相关文章推荐
- NeHe_OpenGL_Qt4 圆柱纹理映射
- OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
- iphone openGL/ES纹理读取
- OpenGL纹理详解(上)
- OpenGL 纹理的使用入门
- 使用DevIL来加载OpenGL纹理
- ArchieOpenGL基础教程第八课:创建3D图形和纹理映射(MFC/SDI)
- OpenGL纹理详解(上)
- windows下用OPENGL播放视频 -采用纹理显示
- opengl 使用soil读入bmp图像作为纹理
- OpenGL纹理尺寸限制
- opengl使用 devil载入纹理
- OpenGL实验(三)桌子的纹理 光照
- openGL纹理
- Qt5.6.0+OpenGL 纹理贴图首战告捷
- MFC+OpenGL 纹理贴图后再绘制线条两个颜色相互影响
- OPenGL纹理基础
- 6.OpenGL学习之多个纹理映射
- OpenGL多重纹理使用与理解(转)
- OpenGL简明笔记2——纹理贴图