2

I am trying to disable vsync in OpenGl with WGL_EXT_swap_control using wglSwapIntervalEXT(int interval).

I am trying to include the wglext header but after much searching it seems it is not installed on my pc (using opengl extension viewer to find this). I have tried installing the windows sdk and updating the .net framework but still cannot install this extension.

Is there anyway to include this. my graphics card is an nVidia GTX 770m. Or is there a simpler way to disable vsync.

Thanks

Spektre
  • 49,595
  • 11
  • 110
  • 380
Zecbmo
  • 71
  • 1
  • 8

2 Answers2

5

So, a friend managed to figure this out without glew. So if anyone needs help with it this should be something similar to what you are looking for

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);
}
Zecbmo
  • 71
  • 1
  • 8
1

Just to include header #include "gl\wglext.h" is not enough. You need to also register the extension to OpenGL. If you do not have a clue how to do it google for some tutorial but much much easier and safer is to use some extension registering library like GLEW see:

After successful glewInit(); call your extension should be available (if present on the gfx card/driver.

Without registering extensions you got access to only basic OpenGL 1.0 stuff.

Community
  • 1
  • 1
Spektre
  • 49,595
  • 11
  • 110
  • 380
  • Cheers, will give it a go! – Zecbmo Dec 03 '15 at 11:16
  • @Zecbmo btw for GL you do not need any .NET or SDK just the GL headers (newest versions are download-able from nVidia servers) and GLEW btw if you are missing some additional extensions on your card/driver you can try nVemulate ... – Spektre Dec 03 '15 at 11:20