monado系列文章索引汇总:
openxr runtime Monado 源码解析 源码分析:源码编译 准备工作说明 hello_xr解读
openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程
openxr runtime Monado 源码解析 源码分析:CreateInstance流程(设备系统和合成器系统)Compositor comp_main client compositor
openxr runtime Monado 源码解析 源码分析:Prober设备发现和管理 system device HMD target instance
openxr runtime Monado 源码解析 源码分析:InitializeSession client native multi_compositor client_compositor
openxr runtime Monado 源码解析 源码分析:CreateSwapchain 画布 HardwareBuffer共享纹理 渲染线程 xrEndeFrame comp_renderer
目录
模块目的
主要类和关系
主要实体对象和字段
主要流程
时序和代码注解
总结
模块目的
创建xrt_system_devices设备系统,持有系统所有可用设备,通过prober模块发现,接入设备。如HMD头显、Eye、Hand tracking等。
主要类和关系
设备系统(xrt_system_devices)及其具体实现类(u_system_devices @ aux_util)
Device:设备的具体功能实现,如android_device和android_sensor。
Prober:设备发现的入口和auto_prober加载具体设备。
HMD:关注hmd数据字段填充,与绘制画布,宽高,视点参数配置相关。
主要实体对象和字段
核心在android_sensor.c的android_create_device()里给HMD对象赋值,可以优先看一下这些细节,以便建立直观的认识。
主要流程
时序和代码注解
总结
本文重点是“设备系统”创建全过程,设备系统是非常重要模块之一,monado的模块化设计非常灵活,从library产出上可以看出,各driver是分开的,各设备商可以按照标准接入新硬件。
android_device.c target_builder_legacy.c p_prober.c是具体实现的关键几个源码文件,需要仔细阅读,理清prober设备发现和管理的总逻辑,剩下逐个击破。