我正在使用libgdx框架,并且不确定访问opengl API的首选方法是什么,我的应用程序使用OpenGl 2.0(useGL20标志设置为true)。现在以清除屏幕为例,我可以执行以下操作:
Gdx.gl20.glClearColor(0, 0, 0, 0xff);
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
但我也可以:
Gdx.gl.glClearColor(0, 0, 0, 0xff);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);*
当然两者都有相同的结果,但是一种方法优先于另一种方法吗?使用
Gdx.gl20
与Gdx.gl
的结果是什么?请注意,在最新版本的libgdx中,openGl 1.x已被完全删除,而
Gdx.gl
只是Gdx.Gl20
的接口包装。但是我正在使用libgdx的旧版本(v.0.9.9),该版本仍支持openGl1.x。 最佳答案
没关系,因为它引用了相同的对象。如果您想一路支持GLES 3.0(当它在libgdx中完全实现时),我会选择gl
,这样您以后就不必重构太多的代码了。然后,在您的AndroidLauncher类中,您可以根据设备功能在ApplicationConfiguration中选择所需的那个(2.0或3.0)。您的大多数核心代码甚至都不需要知道正在使用哪个代码。您只需要担心在使用3.0特定功能的地方进行检查。