我最近试图将手放在OpenGL上.试图掌握API,我正在使用MinGW和OpenGW.现在,我学会了(或者是给出的建议),我不应该使用glBegin和glEnd了,因为那些已被弃用,而应该用OpenGL 3.1开始,来代替.由于我不知道所使用的版本会产生如此大的影响,因此我没有注意到我在计算机上实际安装了哪个版本.而且,据我所知,没有glVersion或类似的电话我可以用来确定该版本.
由于我使用MinGW,我去了各自的include文件夹,发现c:\MinGW\include\GL\gl.h:
/*
* Mesa 3-D graphics library
* Version: 4.0
[more lines]
*/
[more lines]
#define GL_VERSION_1_1 1
#if !defined(__WIN32__)
#define GL_VERSION_1_2 1
#define GL_VERSION_1_3 1
#define GL_ARB_imaging 1
#endif
[more lines]
#define GL_VERSION 0x1F02
Run Code Online (Sandbox Code Playgroud)
对我来说,这表示安装的版本低至1.3.是这种情况还是我如何验证我的怀疑?另外,如果我只有1.3(或任何版本),我会在哪里找到更高版本(与MinGW一起正常工作)?
那么,是否有人知道,如果我的怀疑是正确的并且MinGW带有过时的OpenGL版本?
编辑我意识到这个问题可能被视为与MinGW一起默认安装哪个OpenGL版本的副本?,但是,我相信这个问题是专门关于MinGW的和 OpenGL的,所以我认为这实际上允许(也许)更具体的答案.
那么,是否有人知道,如果我的怀疑是正确的并且MinGW带有过时的OpenGL版本?
MinGW没有"OpenGL",您的操作系统(通常是显卡驱动程序)提供OpenGL.
MinGW提供了一个头文件(gl.h)和一个相应的库(libopengl32.a),它是一个opengl32.dll动态库的包装器,它随Windows一起提供,包含OpenGL 1.0和1.1函数的句柄......周围的东西,不确定确切的版本号.
然后:
大多数操作系统允许您以类似的方式使用整个OpenGL.
但是,在Windows上,为了访问较新的OpenGL函数而不是标题和库包装器(您可能已经可用 - 取决于您的GPU和驱动程序),您必须使用系统调用将函数指针加载到OpenGL调用.
有些库可以帮助您,并且可以轻松使用OpenGL 3/4功能.我推荐gl3w或GLEW.这是在Windows上使用OpenGL的常用方法.