我正在尝试使用wglSwapIntervalEXT(int interval)在WGL_EXT_swap_control中禁用OpenGl中的vsync。
我正在尝试包含wglext标题,但经过大量搜索后,它似乎没有安装在我的电脑上(使用opengl扩展查看器来查找)。我已经尝试安装Windows sdk并更新.net框架但仍然无法安装此扩展。
无论如何要包括这个。我的显卡是nVidia GTX 770m。 或者有一种更简单的方法来禁用vsync。
由于
答案 0 :(得分:1)
仅包含标题#include "gl\wglext.h"
是不够的。您还需要将扩展名注册到 OpenGL 。如果你没有线索如何去谷歌一些教程,但更容易和更安全的是使用一些扩展注册库,如GLEW见:
成功glewInit();
电话后,您的分机应该可用(如果存在于gfx卡/驱动程序上。
如果没有注册扩展程序,您只能访问基本的 OpenGL 1.0 内容。
答案 1 :(得分:1)
所以,一位朋友设法搞清楚了。因此,如果有人需要帮助,这应该与您正在寻找的类似
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);
}