wgext - 扩展未安装在 OpenGL 上下文中
Posted
技术标签:
【中文标题】wgext - 扩展未安装在 OpenGL 上下文中【英文标题】:wglext - extension not installed in OpenGL context 【发布时间】:2015-12-03 10:06:50 【问题描述】:我正在尝试使用 wglSwapIntervalEXT(int interval) 在 WGL_EXT_swap_control 中禁用 OpenGl 中的垂直同步。
我正在尝试包含 wgext 标头,但经过大量搜索后,它似乎没有安装在我的电脑上(使用 opengl 扩展查看器找到它)。我已尝试安装 windows sdk 并更新 .net 框架,但仍然无法安装此扩展。
无论如何要包括这个。我的显卡是 nVidia GTX 770m。 或者有没有更简单的方法来禁用 vsync。
谢谢
【问题讨论】:
【参考方案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);
【讨论】:
【参考方案2】:仅仅包含标题#include "gl\wglext.h"
是不够的。您还需要将扩展注册到 OpenGL。如果您不知道怎么做,请在谷歌上获取一些教程,但更简单、更安全的是使用一些扩展注册库,例如 GLEW,请参阅:
glewInit();
呼叫成功后,您的分机应该可用(如果存在于 gfx 卡/驱动程序上。
如果不注册扩展,您只能访问基本的 OpenGL 1.0 内容。
【讨论】:
干杯,试一试! @Zecbmo btw 对于 GL,您不需要任何 .NET 或 SDK,只需要 GL 标头(最新版本可从 nVidia 服务器下载)和 GLEW 顺便说一句,如果您的卡上缺少一些额外的扩展/driver 你可以试试 nVemulate ...以上是关于wgext - 扩展未安装在 OpenGL 上下文中的主要内容,如果未能解决你的问题,请参考以下文章