答案 0 :(得分:0)
OpenGL是一个开放的标准。最新版本取决于您为GPU安装的驱动程序。
要使用高于1.1的opengl,你需要glew(它暴露了你的驱动程序支持的功能)和一个用于创建上下文的框架:
GLFW, 供过于求 SDL
等等。
目前最新的OpenGL实施:4.5
答案 1 :(得分:0)
一般来说,OpenGL wiki拥有为您的平台(操作系统和显卡)下载最新OpenGL的所有链接。特别是对于Windows,如果你使用的是Visual Studio,NuGet包管理器有一个很好的预先打包的OpenGL发行版叫做'nupengl.core'。
如Arctic所述,4.5是最新标准。是否受构建支持取决于显卡,而不是操作系统。
答案 2 :(得分:-1)
没有针对Windows的更新SDK,仅提供了用于OpenGL 1.1的gl.h
。要在Window OpenGL中使用其他功能,您必须使用扩展标头glext.h。这可以从Khronos获得,并在新扩展可用时更新。您可以使用wglGetProcAddress
获取函数指针,以便在更高版本的GL(或扩展)中使用。获取其他功能的过程因平台而异。例如,如果您使用的是X11,则可以使用glXGetProcAddressARB
,如果您的平台上有EGL,则可以使用eglGetProcAddress
。
根据平台和SDK,如果平台提供更新的GL SDK,您可以在#define GL_GLEXT_PROTOTYPES
之前简单glext.h
。显然,由于Windows不提供更新的SDK,因此不可能实现,但它适用于Linux,Mac,iOS和Android。在这两种方法中,您需要确保您使用的GL上下文支持核心API中的函数,或提供该函数的扩展(参见glGetString
with { {1}})),您构建的SDK包含该功能是不够的。因此,使用'运行时链接'GL_EXTENSIONS
方法有点安全,因为如果函数不可用,它将只返回glGetProcAddress
。使用不可用的函数将导致未定义的行为,并且可能会崩溃。
对于任何给定平台支持的最新版本,这取决于您的视频驱动程序,而不是您构建的SDK。当您创建OpenGL上下文时,NULL
w / glGetString
将指示您的上下文支持哪个版本的OpenGL,无论您使用哪个版本的GL SDK。您可以使用版本保证的任何功能,以及报告的扩展提供的任何功能。