在我们的项目中,OpenGL ES 扮演着至关重要的角色,其主要功能是获取图像数据,经过一系列修饰后将处理结果展示到屏幕上,以此实现各种丰富多样的视觉效果。为了让大家更好地理解后续知识,本文将详细介绍 OpenGL 相关代码。需要注意的是,当前方案将对 OpenGL 的所有操作都集中在一个线程中执行。
一、整体运行逻辑图
在整个项目流程中,首先进行 OpenGL 的初始化工作。初始化完成后,当需要将素材展示到屏幕上时,便开始加载 shader 脚本。加载完成后,通过AFilter中的render方法进行渲染操作,最后执行最终渲染代码,将处理好的图像数据呈现到屏幕。这一过程形成了一个连贯的图像数据处理与展示流程,各环节紧密配合,确保 OpenGL 能够高效地完成其任务。详细逻辑图如下:
二、相关代码解析
OpenGL 初始化
void AvOpenGl::initOpenGL() {//初始化opengl
INFO_LOG(TAGS, "Initializing OpenGL");
mEglDisplay = eglGetDis