如何使用visual studio创建OpenGL 3应用程序?

问题描述:

我想用Visual sutdio创建一个现代的OpenGL应用程序(带有一些着色器),但在可视化中只有一个旧的头文件“gl.h”。你是否有另一种使用GetProcAdress()的方法?有人知道像“glew”但只有OpenGL 3功能的库吗?如何使用visual studio创建OpenGL 3应用程序?

+0

我觉得这个问题太宽泛了,会被封闭,只是猜测。同时尝试这个教程:http://www.learnopengl.com/#!Getting-started/OpenGL –

+0

没关系。我对glew qnd glfw感到困惑。我认为这个glew是最合适的,但我不希望像glfw –

至于加载功能,看看this page

而且,别忘了context creation

至于在Visual Studio中设置它,你可能只需要链接OpenGL的LIB文件(适用于Windows OPENGL32.DLL,。所以对Linux等。)

这个片段可能是有用的(取从第一链路):

void *GetAnyGLFuncAddress(const char *name) 
{ 
    void *p = (void *)wglGetProcAddress(name); 
    if(p == 0 || 
     (p == (void*)0x1) || (p == (void*)0x2) || (p == (void*)0x3) || 
     (p == (void*)-1)) 
    { 
     HMODULE module = LoadLibraryA("opengl32.dll"); 
     p = (void *)GetProcAddress(module, name); 
    } 

    return p; 
} 

虽然可以使用OpenGL没有一个包装如GLFW或SDL,强烈建议使用预先存在的包装器如那些中的一个。大多数情况下,因为实现是特定于平台的,所以这些包装处理(没有它们,您需要针对不同平台使用不同的算法)。它们还为GL常量(GL_TRUE,GL_FALSE,GL_TEXTURE_2D等)提供了便捷的简写。

+0

这样的“窗口管理”的库感谢你的代码示例。我不知道我需要检查指针是否等于0x1或0x2或0x3或-1 ... –