开发者社区> 问答> 正文

对比SurfaceView,TextureView的渲染流程更长一些,主要经历哪几个关键阶段?

对比SurfaceView,TextureView的渲染流程更长一些,主要经历哪几个关键阶段?

展开
收起
zxynnn 2022-05-08 15:48:02 1319 0
1 条回答
写回答
取消 提交回答
  • 1.通过TextureView绑定的SurfaceTexture创建EGL环境; 2.生产端(Surface)通过dequeueBuffer从SurfaceTexture管理的BufferQueue中获得一块GraphicBuffer,后续所有绘制内容都会写到这块Buffer上; 3.当调用EGL swapBuffer之后,会将GraphicBuffer入队到SurfaceTexture内部的BufferQueue; 4.随后TextureView触发frameAvailable,通知系统进行重绘(view#invalidate); 5.系统在下次VSYNC信号到来的时候进行重绘,在UI线程生成DisplayList,然后驱动渲染线程进行真正渲染; 6.渲染线程会将步骤2中的GraphicBuffer作为一张特殊的纹理(GL_TEXTURE_EXTERNAL_OES)上传,与View Hierarchy上其他视图一起通过SurfaceFlinger进行合成;

    2022-05-08 17:11:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载