wglext - extension not installed in OpenGL context

前端 未结 2 875
春和景丽
春和景丽 2021-01-21 22:10

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 searchin

相关标签:
2条回答
  • 2021-01-21 22:41

    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:

    • using GLEW
    • complete GL+VAO/VBO+GLSL+shaders example in C++
    • Multi-texturing example at the end is download link to complete C++ GL project with GLEW source included

    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.

    0 讨论(0)
  • 2021-01-21 23:01

    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);
    }
    
    0 讨论(0)
提交回复
热议问题