小编And*_*ein的帖子

glTexImage2D在OpenGL 3及更高版本的GLUT/FreeType示例中失败

我正在使用此处找到的示例:http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Text_Rendering_01

问题是,当我指定版本高于3的OpenGL上下文时,即:

glutInitContextVersion (3, 2); 
Run Code Online (Sandbox Code Playgroud)

调用glTexImage2D会导致GL_INVALID_ENUM(由GLIntercept报告)错误,并且示例的输出为空.据我所知,从OpenGL 3.3引用中,只有当type不是有效类型常量或者target是无效目标时才会发生这种情况.

这是违规行:

glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, g->bitmap.width, g->bitmap.rows, 0, GL_ALPHA, GL_UNSIGNED_BYTE, g->bitmap.buffer);
Run Code Online (Sandbox Code Playgroud)

另外,我曾尝试修改的例子来调整位图,这样它的尺寸为2最近的电源,如在讷河教程(http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/),但我仍然有同样的错误.

我也尝试使用GLFW实现这个例子并遇到同样的问题.

我正在使用不同的着色器加载代码到示例,但着色器编译/链接正常,如果我没有指定现代OpenGL版本,该示例仍然有效.

如果它有助于我的环境:Windows 7 64位,Visual Studio 2010
AMD HD6950图形与Catalyst 12.3驱动程序.

软件库有:
FreeGLUT 2.8.0
GLEW 1.7.0
FreeType 2.4.9
glm-0.9.3.0


作为参考,这里是gliLog.txt - 我省略了日志的大部分结尾,因为它反复出现同样的错误.

GL Intercept Log. Version : 0.5    Compile Date: Dec  3 2005    Run on: Fri Jun 22 15:42:05 2012

===================================================
Diagnostic: Unknown function wglCreateContextAttribsARB being logged.
GL ERROR - Function wglGetPixelFormat(0x200110ef) generated error GL_INVALID_ENUM
GL ERROR - …
Run Code Online (Sandbox Code Playgroud)

c++ opengl freetype glteximage2d

2
推荐指数
1
解决办法
4225
查看次数

标签 统计

c++ ×1

freetype ×1

glteximage2d ×1

opengl ×1