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。大多数命令不需要终止符,而是使用第二个调用链。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863692.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典专著《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》4本书推荐

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL

之前写过一个博客,介绍 ob_tools包 来实施抓取 observer 层的 gv$ob_sql_audit 的SQL,还提供一些分析SQL来通过不同维度分析缓慢的业务SQL语句,免得和应用扯皮说数据库执行SQL慢。 但是分析出服务端业务SQL语句执行时间还不够,应用也有可能会和你扯皮说obproxy转发慢,也不…

win 安装Android子系统WSA

win 安装Android子系统WSA 仅适用于Windows10和11。 在WSA中,对于要运行的应用不能保证较好的Android兼容性。 1.启用虚拟机平台功能 启用虚拟机平台: PS C:\Users\xxx> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart然后重启计…

Windows环境配置Nginx服务实现负载均衡

系统环境:win10 测试服务:.net6.0+webapi 一、本地创建一个webapi项目二、新建一个api控制器,里面编写一个测试方法三、我直接把这一个项目复制了3份,然后修改控制器方法中的返回值分别为value01,value02,value03四、分别启动三个程序,并且配置不同的端口号Postman/Apif…

二维数组的使用

1.二位数组的理解 Java 语言里提供了支持多维数组的语法 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像右图Excel中的表格一样。 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层…

https申请+部署

1.申请参考:https://developer.aliyun.com/article/1635083 自动就行。 2.成功后会下载到两个文件。一个.poe 一个.key 部署 1.在/etc/nginx/conf.d里面新建一个文件夹cert,然后把这两个文件放进去。2.返回到nginx.conf里面配置, 这是原来的 server{listen 80;serve…

使用 SK Plugin 给 LLM 添加能力

前几篇我们介绍了如何使用 SK + ollama 跟 LLM 进行基本的对话。如果只是对话的话其实不用什么 SK 也是可以的。今天让我们给 LLM 整点活,让它真的给我们干点啥。 What is Plugin?Plugins are a key component of Semantic Kernel. If you have already used plugins from Ch…

FreeNAS 11.2-U6 简易上手指南

NAS是一个网络附属存储管理器,简单的可以理解为一个可以将数据存储至网络设备的服务。 NAS一般都会支持数据冗余、日志、压缩以及校验等功能。 国内最出名的应该就是群晖的系统了,当然我们这里主要讲解的是FreeNAS。 FreeNAS是一个基于FreeBSD进行二次开发的开源NAS系统,其支…

WhyNotWin11(win11检测工具)

微软官方Windows11检测工具写的太烂,第三方作者开发了一个,软件给每一项都标注了功能,通过了显示绿色,没通过显示红色。Windows目前不支持6、7代处理器。另外,主板不支持加密TPM2.0加密的也不行,不过这个TPM加密,估计后面会妥协,哦不,所有的都会妥协。获取地址:https…

vue基础语法

1、插值语法 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>插值语法</title><script src="../vu/js/vue.js"></script> </head> <body><!--插值语法示…

Luogu P4287 SHOI2011 双倍回文 题解 [ 紫 ] [ manacher ]

manacher 经典结论。双倍回文:回文子串结论的经典应用。 结论 先放本题最关键的结论:一个字符串本质不同的回文子串最多只有 \(n\) 个。 考虑如何证明: 假设我们一个一个地在当前字符串(黑色部分)的结尾加入字符(红色部分),那么会出现如下情况:显然,加入红色字符后,…