OpenGL ES学习第四篇:先来试一个简单的渲染方式
本文你可以了解到
- 定义一个渲染器基类
- 使用Android封装好的EGL环境(GLSurfaceView)来渲染上篇文章中制作好的三角形纹理
OpenGL ES绘制分为三步
- 定义纹理
- 定义渲染器
- 定义EGL环境
1. 定义一个渲染器
class SampleRenderer(private val texture: ITexture) : GLSurfaceView.Renderer {
override fun onSurfaceCreated(gl: GL10?, config: EGLConfig?) {
GLES20.glClearColor(0f, 0f, 0f, 0f)
texture.surfaceCreated()
}
override fun onSurfaceChanged(gl: GL10?, width: Int, height: Int) {
GLES20.glViewport(0, 0, width, height)
texture.surfaceChanged(width, height)
}
override fun onDrawFrame(gl: GL10?) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
texture.updateTexImage();
}
fun release() {
texture.surfaceDestroyed()
}
}
复制代码
渲染器内容比较简单,主要是在生命周期内回调纹理的生命周期方法,其中release方法目前无法嵌入到生命周期中,请暂时忽略
2. 使用GLSurfaceView
通过渲染器,将三角形渲染出来
定义一个Activity页面,layout文件中只有一个GLSurfaceView
<android.opengl.GLSurfaceView
android:id="@+id/glSurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
复制代码
在Activity页面中,启动渲染
binding.glSurfaceview.setEGLContextClientVersion(2)
renderer = SampleRenderer(TriangleTexture())
binding.glSurfaceview.setRenderer(renderer)
binding.glSurfaceview.renderMode = GLSurfaceView.RENDERMODE_WHEN_DIRTY
复制代码
,,,,就结束了,简单的吧