OpenGl基础使用

OpenGL:对比canvas绘制,直接使用GPU绘制,是最高效的方法。GPU来分担CPU的工作,从而提高效率。

先添加权限

OpenGl基础使用

1,要使用opengl要先初始化他的载体,GLsurfaceview,可以配置内容渲染是在surfaceview的特定区域完成。实质上是会自己创建一个window,没有动画或者变形效果

OpenGl基础使用

1)onCreate{

gl = new GLSurfaceView();

setContentView(gl);

}

OpenGl基础使用

2)“configurationInfo.reqGlEsVersion >= 0x20000” // 检测opengl是否支持2.0

3)通过setGLContextClientVersion()配置surfaceview的视图;

4)通过setRenderer()来传入一个自定义的Renderer类,当surfaceview创建或者发生改变以及绘制新一帧的时候,渲染器都会被GLSurfaceView调用

OpenGl基础使用

5)处理Activity的生命周期事件,GLSurfaceView要协同好Activity生命周期,防止内存泄漏

OpenGl基础使用

6)创建Renderer类

GLSurfaceView会新开启一个线程去绘制,最后会在ui线程调用,通过queneEvent()传递Runnable对象给子线程,再通过runonuiThread()切换到主线程调用

 

Renderer类实际上是渲染类,通过实现Renderer接口实现。重写三个方法

onSurfaceCreate():应用程序创建的第一次会回掉,当设备被唤醒及用户返回当前Activity都会被回掉

onSurfacechanged():surfaceview创建后,surfaceview尺寸每次发生改变都会被回掉

onDrawFrame():绘制每一帧的时候都会被回掉

OpenGl基础使用

OpenGl基础使用

OpenGl基础使用

在onDrawFrame()中调用glClear()来清空屏幕颜色,再调用glClearColor()中定义的颜色渲染到整个频幕上