Android OpenGl ES 3.0 学习笔记
title OpenGL ES 3.0 DrawTriangle
Java->JNI:(1)Java_render_MyNativeRenderer_nativeSetRenderType(100, 100)
Java->MyGLRenderContext:GetInstance()
Java->MyGLRenderContext:SetRenderType(100)
note right of NativeTriangle: GLBaseSample
MyGLRenderContext->NativeTriangle:New NativeTriangle()
Java->JNI:(2)Java_render_MyNativeRenderer_nativeSurfaceCreate(assetManager)
Java->MyGLRenderContext:OnSurfaceCreated(assetManager)
MyGLRenderContext->GLUtils:setEnvAndAssetManager(assetManager)
MyGLRenderContext->NativeTriangle:Create NativeTriangle(m_pCurSample)
NativeTriangle->GLUtils:openTextFile(VERTEX_SHADER)
NativeTriangle->GLUtils:openTextFile(FRAGMENT_SHADER)
NativeTriangle->GLUtils:createProgram(&VERTEX_SHADER, &FRAGMENT_SHADER)
note right of NativeTriangle
loadShader(GL_VERTEX_SHADER)
loadShader(GL_FRAGMENT_SHADER)
glCreateProgram(program)
glAttachShader(program, vertexShader)
glAttachShader(program, fragmentShader)
glLinkProgram(program)
glDeleteShader(vertexShader)
glDeleteShader(fragmentShader)
end note
NativeTriangle->NativeTriangle:glClearColor(R1.0f, G1.0f, B1.0f, Alpha0.0f)
Java->JNI:(3)Java_render_MyNativeRenderer_nativeSurfaceChange(width, height)
Java->MyGLRenderContext:OnSurfaceChanged(width, height)
MyGLRenderContext->NativeTriangle:Change(width, height)
NativeTriangle->NativeTriangle:glViewport(0, 0, width, height)
Java->JNI:(4)Java_render_MyNativeRenderer_nativeDrawFrame()
Java->MyGLRenderContext:OnDrawFrame()
MyGLRenderContext->NativeTriangle:Draw()
NativeTriangle->NativeTriangle: glClear(GL_COLOR_BUFFER_BIT)
NativeTriangle->NativeTriangle: glUseProgram(m_ProgramObj);
NativeTriangle->NativeTriangle: glVertexAttribPointer(VERTEX_POS_INDX, 3, GL_FLOAT, GL_FALSE, 0, vVertices)
NativeTriangle->NativeTriangle: glEnableVertexAttribArray(VERTEX_POS_INDX)
NativeTriangle->NativeTriangle: glDrawArrays(GL_TRIANGLES, 0, 3)
NativeTriangle->NativeTriangle: glDisableVertexAttribArray(0)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探