OpenGL ES学习第四篇:先来试一个简单的渲染方式[通俗易懂]

OpenGL ES学习第四篇:先来试一个简单的渲染方式[通俗易懂]本文你可以了解到 – 定义一个渲染器基类 – 使用Android封装好的EGL环境(GLSurfaceView)来渲染上篇文章中制作好的三角形纹理

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

,,,,就结束了,简单的吧

image.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13498.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注