当我使用LWJGL编写java程序时,使用glGetString(GL_VERSION);
获取OpenGL版本。然后显示: 2.1.0 - Build 8.15.10.1892
当我打开我的Windows控制台(使用着名的'cmd'运行),并且我使用systeminfo时,它不仅提供有关Windows安装日期的任何信息。
我想获得windows的安装日期,因为我知道我的笔记本电脑有多大了。在搜索互联网后,我使用WMIC OS GET installdate
,我终于得到了一个日期:2010年11月11日。
我认为这是真的,因为我至少可以记得同一年。当然,该设备可能已经在工厂或商店中使用了一段时间。
当我查找OpenGL 2.1.0的年代时,我发现它大约在2006年https://www.opengl.org/wiki/History_of_OpenGL#OpenGL_2.1_.282006.29
我对我的OpenGL版本感到失望。 我正在运行64位Windows 7.该设备可能至少从2010年底开始,但java显示的是2006年的OpenGL版本。 2010年11月之前有更新的OpenGL版本,如版本3.0(2008),3.1(2009)和3.2(也是2009)
可能是JVM只能访问旧版本的OpenGL吗? 前段时间我在这台笔记本电脑上玩了一个CD-ROM游戏。我认为如果使用OpenGL 2.1.0,游戏将无法播放... 或者这是不公平的比较?
答案 0 :(得分:2)
OpenGL本身就是一个规范。计算机上运行的实际内容称为实现,它通常是图形驱动程序的一部分。此外,每个OpenGL规范对实现都有非常具体的要求。 OpenGL-3.x中有很多东西,即使是2010年“现代”的硬件也不支持。例如,那时的英特尔GPU根本没有OpenGL-3支持所需的一切。因此,您将只获得OpenGL-2.x支持,仅此而已。
答案 1 :(得分:1)
您可以查看笔记本电脑规格并查看您的gfx硬件。这将告诉您硬件支持哪个版本的OpenGL(这些信息最有可能来自gfx芯片供应商)。
使用支持硬件版本的GL的API是另一个问题,可能与初始化或使用openGL图形库的方式有关。
我认为现在大多数司机都支持旧版本。它们本身可能不支持API,但我想过为驱动程序中的功能提供包装器。当然,我可以在OpenGL 1.1中进行编码,并在与OpenGL 4.5程序相同的机器上查看结果(在Quadro K2200M上)。