openxr runtime Monado 源码解析 源码分析:Prober设备发现和管理 system device HMD target instance

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数据字段填充,与绘制画布,宽高,视点参数配置相关。

openxr runtime Monado 源码解析 源码分析:Prober设备发现和管理 system device HMD target instance_第1张图片

主要实体对象和字段

核心在android_sensor.c的android_create_device()里给HMD对象赋值,可以优先看一下这些细节,以便建立直观的认识。

openxr runtime Monado 源码解析 源码分析:Prober设备发现和管理 system device HMD target instance_第2张图片

主要流程

时序和代码注解

openxr runtime Monado 源码解析 源码分析:Prober设备发现和管理 system device HMD target instance_第3张图片

总结

本文重点是“设备系统”创建全过程,设备系统是非常重要模块之一,monado的模块化设计非常灵活,从library产出上可以看出,各driver是分开的,各设备商可以按照标准接入新硬件。

android_device.c target_builder_legacy.c p_prober.c是具体实现的关键几个源码文件,需要仔细阅读,理清prober设备发现和管理的总逻辑,剩下逐个击破。

你可能感兴趣的:(Android,3D,OpenGL,ES,monado,VR全景,xr,monado,runtime,vr,3d)