我试图使用WGL_ARB_pbuffer进行OpenGL的屏幕外渲染,
但我在初始化期间失败了. 这是我的代码.wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) wglGetProcAddress("wglGetExtensionsStringARB");
if(!wglGetExtensionsStringARB) return;
const GLubyte* extensions = (const GLubyte*) wglGetExtensionsStringARB(wglGetCurrentDC());
Run Code Online (Sandbox Code Playgroud)
实际上这结束于第二行,因为wglGetExtensionsStringARB得到NULL.
我不知道为什么wglGetProcAddress不起作用. 我包括"wglext.h",我也在标题中定义如下.PFNWGLGETEXTENSIONSSTRINGARBPROC pwglGetExtensionsStringARB = 0;
#define wglGetExtensionsStringARB pwglGetExtensionsStringARB
Run Code Online (Sandbox Code Playgroud)
为什么我不能像我想的那样使用wglGetProcAddress?
Mr.*_*ith 13
wglGetProcAddress需要一个OpenGL渲染上下文; 你需要你的电话wglCreateContext,并wglMakeCurrent在调用wglGetProcAddress.如果您尚未设置OpenGL上下文,wglGetProcAddress将始终返回NULL.如果您还不确定是否还有OpenGL上下文(例如,如果您使用的是第三方框架/库),请致电wglGetCurrentContext并检查以确保它没有返回NULL.
| 归档时间: |
|
| 查看次数: |
4827 次 |
| 最近记录: |