OpenXR™加载器-设计、操作、调用链
OpenXR™加载器-设计和操作
1.2.1概述
OpenXR是一个分层体系结构,由以下元素组成:
1)OpenXR应用程序
2)OpenXR加载程序
3)OpenXR API层
4)OpenXR运行时间
一般概念适用于Windows和Linux的系统的加载程序。
首先,让把OpenXR环境看作一个整体。OpenXR应用程序位于执行链的起点,并直接与OpenXR加载程序接口。加载程序反过来检测、加载任意数量的OpenXR运行时和API层,并与之交互。每个OpenXR运行时,都控制一个完整的VR/XR/MR系统,应用程序可以选择与之交互。加载器可以在应用程序和运行时之间,注入任意数量的可选API层,以增强行为。因此,任何OpenXR命令都可能涉及不同模块的执行代码,包括加载器、API层和运行时。
OpenXR加载程序的高级视图,如图1-16所示。

图1-16 OpenXR加载程序的高级视图
1.2.2. OpenXR调用链
当加载API层时,加载器将调用链链接在一起,该调用链包括该层选择的每个函数。在xrCreateInstance时,加载器初始化所有启用的API层,并为每个OpenXR命令创建调用链。结果调度表的每个条目,都指向该链的第一个元素。加载器为创建的XrInstance构建一个单独的调度表。
当应用程序调用OpenXR命令时,通常会先触发加载器中的跳转函数。这些跳转功能是小而简单的功能,可以跳到给定对象的相应调度表条目。有些函数还需要一个终结器的加载程序函数,在所有启用的API层后调用该函数,以便进入运行时前处理数据。
OpenXR调用链示例,如图1-17所示。

图1-17 OpenXR调用链示例
加载器仅允许单个未完成的XrInstance,并为所有OpenXR API接口的XrInstance生成的调度表使用。
当OpenXR应用程序选择使用从OpenXR加载器时,调用链就是以下模块之一(如果用户启用了两个API层),如图1-18所示。

图1-18 OpenXR两个API之间的调用链示例
特殊实例调用链用于多个地方,加载器必须在任何API层前后,但在调用启用的运行时前执行一些工作。此组的三个主要命令是xrCreateInstance、xrDestroyInstance和xrGetInstanceProcAddr。大多数命令不需要终止符,而是使用第二个调用链。
人工智能芯片与自动驾驶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2024-01-04 RISC-V 指令集介绍(四)
2022-01-04 GAAFET与FinFET架构
2021-01-04 3D MinkowskiEngine稀疏模式重建
2021-01-04 MinkowskiEngine多GPU训练
2021-01-04 MinkowskiEngine语义分割
2021-01-04 MinkowskiEngine demo ModelNet40分类
2021-01-04 MinkowskiEngine基准测试