Opengl ES入门1

来源:互联网 发布:淘宝没有展现词 编辑:程序博客网 时间:2024/04/30 14:15

本系列文章主要总结如何通过实例来介绍如何使用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版本为2setEGLContextClientVersion(2);//设置渲染器为当前MyGLSurfaceViewsetRenderer(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实例

代码下载地址

0 0