大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说OpenGL ES学习第四篇:先来试一个简单的渲染方式[通俗易懂],希望您对编程的造诣更进一步.
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
,,,,就结束了,简单的吧
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13498.html