c-创建现代OpenGL上下文需要假上下文吗

  • 本文关键字:上下文 OpenGL 创建 c opengl
  • 更新时间 :
  • 英文 :


根据这个页面(以及其他几个页面(,您需要创建一个虚拟窗口,然后创建一个伪遗留上下文,然后使用wglCreateContextAttribsARB创建一个现代上下文。

然而,我尝试使用wglCreateContext和手动加载功能的旧方法:

glCreateShader = wglGetProcAddress("glCreateShader");
glShaderSource = wglGetProcAddress("glShaderSource");
glCompileShader = wglGetProcAddress("glCompileShader");
...etc for all other functions that I need

然后我检查了上下文版本:

int minor;
int major;
glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor);
printf("%d.%dn", major, minor);

我得到了";4.6〃;。为什么这个版本不像2.0,为什么需要假上下文?

如果你愿意限制你的应用程序永远不使用WGL扩展(即:你不能做控制vsync、使用更高级的像素格式、创建健壮或调试OpenGL上下文或任何其他工具(,并且总是使用兼容上下文,那么是的,你可以不使用更现代的上下文创建API。但没有理由对你的项目施加这样的限制。

最新更新