2011-02-08 52 views
5

我无法找到对此的参考。所有Android开发人员文档都专注于OpenGL ES 1.0。如何在Android SDK中使用API​​ level 8开始使用OpenGL 2.0?如果8级不支持,那么我需要使用什么级别?如何在Android SDK(不是NDK)中使用OpenGL ES 2.0?

市面上有多少百分比的Android手机目前支持OpenGL ES 2.0?

回答

8

问题是,您需要在GLSurfaceView中实现GL10中的三个方法。

public void onDrawFrame(GL10 gl) 
public void onSurfaceChanged(GL10 gl, int width, int height) 
public void onSurfaceCreated(GL10 gl, EGLConfig config) 

它看起来像解决方案是完全忽略你的渲染器中的GL10,并使用所有GLES20类的静态方法。

public void onDrawFrame(GL10 glUnused) { 
     GLES20.glClearColor(0.0f, 0.0f, 1.0f, 1.0f); 
     GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT); 
     GLES20.glUseProgram(mProgram); 
     ... 
} 

所有GLES20静态成员列在这里:那些 http://developer.android.com/reference/android/opengl/GLES20.html

更好的文档都在Khronos的文档。 http://www.khronos.org/opengles/sdk/docs/man/

3

你应该看看这个视频http://www.youtube.com/watch?v=7-62tRHLcHk。这个家伙会为不同的OpenGL ES版本提供设备支持,并向您展示如何开始使用Android上的OpenGL。他还谈到了设备的碎片化以及如何支持它们。基本上大多数“第二代”设备都支持2.0版本,并且自2009年年底开始出货。如果您打算仅针对2.0设备,那么显然必须进行系统检查以确保设备X具有适当的硬件规格。

如果您想了解如何在SDK中设置基本的OpenGL渲染器,跳转到该视频中的21:00。

+0

它谈论的OpenGL 2的市场渗透,但我看不到任何有关如何访问的OpenGL ES 2.0 SDK(不是NDK)。 – ace 2011-02-09 19:07:34