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

时间:2015-12-03 10:06:51

标签: windows opengl vsync opengl-extensions

我正在尝试使用wglSwapIntervalEXT(int interval)在WGL_EXT_swap_control中禁用OpenGl中的vsync。

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

无论如何要包括这个。我的显卡是nVidia GTX 770m。 或者有一种更简单的方法来禁用vsync。

由于

2 个答案:

答案 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);
}