在我們的項目中,OpenGL ES 扮演著至關重要的角色,其主要功能是獲取圖像數據,經過一系列修飾后將處理結果展示到屏幕上,以此實現各種豐富多樣的視覺效果。為了讓大家更好地理解后續知識,本文將詳細介紹 OpenGL 相關代碼。需要注意的是,當前方案將對 OpenGL 的所有操作都集中在一個線程中執行。
一、整體運行邏輯圖
在整個項目流程中,首先進行 OpenGL 的初始化工作。初始化完成后,當需要將素材展示到屏幕上時,便開始加載 shader 腳本。加載完成后,通過AFilter中的render方法進行渲染操作,最后執行最終渲染代碼,將處理好的圖像數據呈現到屏幕。這一過程形成了一個連貫的圖像數據處理與展示流程,各環節緊密配合,確保 OpenGL 能夠高效地完成其任務。詳細邏輯圖如下:
二、相關代碼解析
OpenGL 初始化
void AvOpenGl::initOpenGL() {//初始化openglINFO_LOG(TAGS, "Initializing OpenGL");mEglDisplay = eglGetDis