我对如何将OpenGL与LWJGL一起使用感到困惑,我打算使用OpenGL 4.4(或4.3)并远离OpenGL 3.0下的任何东西。
然而,我第一次完成了一本需要我glClearBufferfv()
的书的工作,我在GL44.*
找不到它,原来它在GL30.*
。
我宁愿用一次静态导入来编写代码,而不是每次都使用GL30.glClearBufferfv(...)
,这也迫使我完全记住在什么版本中引入了什么功能。
我知道有很多人使用LWJGL,所以我认为应该有一个更简单的方法,我应该如何使用它?
编辑:没有给予足够的重视,似乎没有GL30.glClearBufferfv(...)
,但有fi
变体。我现在应该使用什么?
答案 0 :(得分:3)
您需要了解OpenGL版本控制如何工作以了解glClearBufferfv (...)
名称空间中GL30
的原因。
每个版本都引入了一组新的 必需的 功能,直到版本 3.1 ,所需的功能才会增长。随着3.1的引入以及3.2中核心/兼容性配置文件之间的区别,您可能会遇到旧的命名空间中删除的功能,而不是 3.1 。但是,构建一个只有 的OpenGL应用程序才能使用OpenGL 4.4或4.3中添加的功能。
10-15年前,您需要执行大部分有用的命令。例如,glDrawArrays (...)
是在OpenGL 1.1中引入的,对构建GL 4.4软件仍然至关重要。因此,只需要绘制顶点数组,就必须使用GL11
命名空间中的某些内容。因此,您将从许多不同的命名空间中借用命令和常量。