2015-12-03 8 views
0

Я пытаюсь отключить vsync в OpenGl с помощью WGL_EXT_swap_control, используя wglSwapIntervalEXT (int интервал).wglext - расширение не установлено в контексте OpenGL

Я пытаюсь включить заголовок wglext, но после долгих поисков он кажется, что он не установлен на моем компьютере (с помощью средства просмотра расширения opengl, чтобы найти это). Я попытался установить windows sdk и обновить .NET-инфраструктуру, но до сих пор не могу установить это расширение.

Можно ли включить это. моя графическая карта - nVidia GTX 770m. Или есть более простой способ отключить vsync.

Благодаря

ответ

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); 
} 
1

Просто включить заголовок #include "gl\wglext.h" недостаточно. Вам также необходимо зарегистрировать расширение до OpenGL. Если вы не имеете понятия, как это сделать Google для некоторого урока, но намного проще и безопаснее, чтобы использовать некоторые расширения регистрирующий библиотеки как GLEW Престола:

Кормовая er успешно glewInit(); вызов вашего расширения должен быть доступен (если он присутствует на карте gfx/драйвере.

Не регистрируя расширения, вы получили доступ только к базовым OpenGL 1.0.

+0

Приветствия! – Zecbmo

+0

@Zecbmo btw для GL вам не нужны какие-либо .NET или SDK, только заголовки GL (самые новые версии загружаются с серверов nVidia) и GLEW btw, если вам не хватает некоторых дополнительных расширений на вашей карте/драйвере, вы можете попробовать nVemulate. .. – Spektre