在android中使用OpenGL ES需要三个步骤:
创建GLSurfaceView组件,使用Activity来显示GLSurfaceView组建。
为GLSurfaceView组建创建GLSurfaceView.Renderer实例,实现GLSurfaceView.Renderer类时需要实现该接口里的三个方法:
- abstract void onDrawFrame(GL10 gl):Called to draw the current frame.
- abstract void onSurfaceChanged(GL10 gl, int width, int height):Called when the surface changed size.
- abstract void onSurfaceCreated(GL10 gl, EGLConfig config):Called when the surface is created or recreated.
- 调用GLSurfaceView组建的setRenderer (GLSurfaceView.Renderer renderer) 方法指定Renderer对象,该对象将会完成GLSurfaceView里3D图形的绘制。
然后来看一个Demo,首先是主Activity:
然后是Renderer的实现:
注意构造函数中那些Buffer的创建方式。在这个地方,不能直接使用FloatBuffer/IntBuffer 的wrap() method。直接用这个method创建出来的buffer会导致JE: