本系列文章主要总结如何通过实例来介绍如何使用Opengl ES,并且通过Opengl ES完成对应的相机预览、滤镜等实例开发。
本文主要介绍最简单的opengl实例。
主要参考:http://blog.csdn.net/niu_gao/article/details/8533126
以下为详细步骤:
1、创建最简单的安卓工程。
2、在Manifest中声明使用OpenGLES
为了能使用OpenGLES 2.0 API,你必须在你的manifest中添加以下声明:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
3、创建一个MyGLSurfaceView类,继承于GLSurfaceView。并且在构造函数中指定opengl版本及渲染器:
//设置opengl版本为2
setEGLContextClientVersion(2);
//设置渲染器为当前MyGLSurfaceView
setRenderer(this);
//设置渲染模式为RENDERMODE_WHEN_DIRTY,这样子只有当调用requestRender时才会进行渲染。
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
由于设置了渲染器为当前类,因此需要让MyGLSurfaceView实现Renderer接口。并且实现以下三个方法:
1)onDrawFrame 渲染时调用
2)onSurfaceChanged 当窗口变化时调用
3)onSurfaceCreated 当窗口创建时调用
public class MyGLSurfaceView extends GLSurfaceView implements Renderer {
public MyGLSurfaceView(Context context) {
super(context);
// TODO Auto-generated constructor stub
setEGLContextClientVersion(2);
setRenderer(this);
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}
@Override
public void onDrawFrame(GL10 arg0) {
// TODO Auto-generated method stub
// 绘制背景色
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
@Override
public void onSurfaceChanged(GL10 arg0, int width, int height) {
// TODO Auto-generated method stub
GLES20.glViewport(0, 0, width, height);
}
@Override
public void onSurfaceCreated(GL10 arg0, EGLConfig arg1) {
// TODO Auto-generated method stub
//设置背景的颜色
GLES20.glClearColor(1.0f, 0, 0, 1.0f);
}
}
4、编译下载,就可以看到背景红色的界面。
这就完成了最简单的opengl实例