【发布时间】:2013-08-03 12:13:00
【问题描述】:
我正在尝试获取其他 openGL 功能,例如glCreateShader(), 如许多教程中所述,在运行时使用 wglGetProcAddress。 然而,返回值为 NULL,并且不能使用与着色器相关的函数 找到了。
如何解决这个问题? 谢谢!! :-)
【问题讨论】:
我正在尝试获取其他 openGL 功能,例如glCreateShader(), 如许多教程中所述,在运行时使用 wglGetProcAddress。 然而,返回值为 NULL,并且不能使用与着色器相关的函数 找到了。
如何解决这个问题? 谢谢!! :-)
【问题讨论】:
这些功能由图形驱动程序提供。所以你有两个选择:
请注意,有许多低端显卡根本无法满足扩展的要求,因此他们的制造商永远不会提供它们。
【讨论】:
我已经解决了这个问题。 必须先创建openGL上下文,并且必须选择像素格式 并且适合您想要的扩展集。
如果您不执行上述操作,wglGetProcAddress 将找不到您的扩展。
【讨论】:
wglGetProcAddress 的文档,您从一开始就知道这一点。人们,真的,阅读精美手册 (RTFM)
wglGetProcAddress 参考页面,第一句:<quote> "wglGetProcAddress 函数返回 OpenGL 扩展函数的地址以用于 当前 OpenGL渲染上下文。” </quote> – 我认为很明显,要拥有 current 上下文,您首先必须创建一个并使其处于活动状态。