EGL
EGL 是介于诸如OpenGL 或OpenVG的Khronos渲染API与底层本地平台窗口系统的接口。它被用于处理图形管理、表面/缓冲捆绑、渲染同步及支援使用其他Khronos API进行的高效、加速、混合模式2D和3D渲染。
EGL提供了OpenGL ES 3.0和运行在计算机上的原生窗口系统之间的一个“结合”层次。(为了平台无关性)
int esMain(ESContext *esContext ) 入口点
在DirectX中,顶点shader叫做vertex shader,像素shader叫做pixel shader;
在OpenGL中,顶点shader也叫做vertex shader,但像素shader叫做fragment shader。
不同的着色器编译为一个着色器对象之后,它们必须连接到一个程序对象并一起链接,才能绘制图形。
程序对象连接多个着色器对象(类似c语言的编译器和链接器)每个程序对象必须连接一个顶点着色器和一个片段着色器(不多不少)
获得链接后的着色器对象包括6个步骤:
1.创建一个顶点着色器对象和一个片段着色器对象。
2.将源代码连接到每个着色器对象
3.编译着色器对象
4.创建一个程序对象
5.将编译后的着色器对象连接到程序对象
6.链接程序对象
统一变量:存储应用程序通过OpenGL ES 3.0 API传递给着色器的只读数值的应用。
统一变量值是程序对象局部所有的。
统一变量缓冲区对象:用于存储统一变量数据从而在程序的着色器之间甚至程序之间共享同一变量。