主要需要关注三个步骤
大部分c++/java代码主要负责这部分逻辑,包括顶点数据、纹理坐标、贴图加在等等。
可以理解为,所有android上所有 GLES20.glXX 方法都发生在此步骤。
纹理着色器,主要作用是将顶点数据转化为屏幕坐标、颜色、深度以及uv等自定义数据。
主要作用是将顶点着色器产生的数据转化为一个argb值,这个值最终展示在屏幕上。
纹理贴图一般发生在这个阶段。
<uses-feature android:glEsVersion="0x00020000"/>
val glPanel = findViewById<GLSurfaceView>(R.id.glPanel)
glPanel.setEGLContextClientVersion(2)
glPanel.setEGLConfigChooser(8, 8, 8, 8, 16, 0)
glPanel.setRenderer(this)
glPanel.renderMode = GLSurfaceView.RENDERMODE_CONTINUOUSLY
override fun onDrawFrame(ignored: GL10?) {
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
}
override fun onSurfaceChanged(ignored: GL10?, width: Int, height: Int) {
glViewport(0, 0, width, height)
}
override fun onSurfaceCreated(ignored: GL10?, config: EGLConfig?) {
glClearColor(0.3f, 0.6f, 0.9f, 1f)
glClearDepthf(1f)
}