我正在使用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.gl20Gdx.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特定功能的地方进行检查。

07-24 15:05