monado系列文章索引汇总
模块目的
完成session对象创建,涉及两个对象:native组合器和非native组合器创建,前者用于共享画布创建,后者用于client侧纹理创建,client渲染环境可以是gles gl vk d3d,本次讨论gles。
主要类和关系
native compositor:native组合器,CreateInstance篇说明过,native离vk跟近,这里为multi_compositor对象。用于Swapchain对象创建,后续文章会介绍。
非native compositor:响应client事件,并中转给native compositor,这里是client_egl_compositor。
主要流程
要点
1 非native compositor创建
在oxr_session.c的oxr_session_create_impl()函数里,根据客户端图形平台的不同,非native compositor创建会走不同的分支,目前有:
oxr_session_populate_gl_xlib()
oxr_session_populate_gles_android()
oxr_session_populate_gl_win32()
oxr_session_populate_vk()
2 EGL环境共享
App侧InitializeDevice创建的EGL环境,共享给runtime comp_client模块。
时序和代码注解
核心包含三个步骤,如下图:
总结
本文重点是创建session,包含两个native组合器multi_compositor和非native组合器client_egl_compositor创建。
前者离vk跟近,并开启监听client layer提交的线程,后续文章会介绍。
后者持有app侧创建的EGL环境,用于swapchain画布的创建,后续文章会介绍。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net