wglext - 扩展未安装在 OpenGL 上下文中

wglext - extension not installed in OpenGL context

我正在尝试使用 wglSwapIntervalEXT(int interval) WGL_EXT_swap_control 在 OpenGl 中禁用垂直同步。

我正在尝试包含 wglext header 但经过大量搜索后我的电脑上似乎没有安装它(使用 opengl 扩展查看器找到它)。我已尝试安装 windows sdk 并更新 .net 框架,但仍然无法安装此扩展。

有没有包括这个。我的显卡是 nVidia GTX 770m。 或者有没有更简单的方法来禁用垂直同步。

谢谢

仅仅包含 header #include "gl\wglext.h" 是不够的。您还需要将扩展​​程序注册到 OpenGL。如果你不知道如何去做一些教程 google 但更容易和更安全的是使用一些扩展注册库,如 GLEW 请参阅:

成功 glewInit(); 呼叫后,您的分机应该可用(如果出现在 gfx card/driver。

如果不注册扩展,您只能访问基本的 OpenGL 1.0 内容。

所以,一个朋友成功地解决了这个问题。因此,如果有人需要帮助,这应该与您正在寻找的东西类似

void SetVSync(bool sync)  
{   
typedef BOOL(APIENTRY *PFNWGLSWAPINTERVALPROC)(int);
PFNWGLSWAPINTERVALPROC wglSwapIntervalEXT = 0;

const char *extensions = (char*)glGetString(GL_EXTENSIONS);

wglSwapIntervalEXT = (PFNWGLSWAPINTERVALPROC)wglGetProcAddress("wglSwapIntervalEXT");

if (wglSwapIntervalEXT)
    wglSwapIntervalEXT(sync);
}