我正在尝试使用 wglSwapIntervalEXT(int 间隔)在带有 WGL_EXT_swap_control 的 OpenGl 中禁用 vsync。
我正在尝试包含 wgext 标头,但经过大量搜索后,它似乎没有安装在我的电脑上(使用 opengl 扩展查看器找到它)。我已尝试安装 windows sdk 并更新 .net 框架,但仍然无法安装此扩展。
反正有没有包括这个。我的显卡是 nVidia GTX 770m。或者有没有更简单的方法来禁用 vsync。
谢谢
我正在尝试使用 wglSwapIntervalEXT(int 间隔)在带有 WGL_EXT_swap_control 的 OpenGl 中禁用 vsync。
我正在尝试包含 wgext 标头,但经过大量搜索后,它似乎没有安装在我的电脑上(使用 opengl 扩展查看器找到它)。我已尝试安装 windows sdk 并更新 .net 框架,但仍然无法安装此扩展。
反正有没有包括这个。我的显卡是 nVidia GTX 770m。或者有没有更简单的方法来禁用 vsync。
谢谢
因此,一位朋友设法解决了这个问题。因此,如果有人需要帮助,这应该与您正在寻找的类似
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);
}
仅仅包含标题#include "gl\wglext.h"
是不够的。您还需要将扩展注册到OpenGL。如果您不知道如何做一些教程,但更容易和更安全的是使用一些扩展注册库,如GLEW,请参阅:
成功glewInit();
呼叫后,您的分机应该可用(如果存在于 gfx 卡/驱动程序上。
如果不注册扩展,您只能访问基本的OpenGL 1.0内容。