OpenXR 超详细的spec

3.API 初始化

3.2 Function Pointers

XrResult xrGetInstanceProcAddr(XrInstance                                  instance,const char*                                 name,PFN_xrVoidFunction*                         function);

instance: XrInstance类型,可以是NULL,也可以是任何有效的instance;

name:待获取fp的函数名称;

function:返回的函数指针fp。

xrGetInstanceProcAddr的参数instance和name不同,返回的值也是不同,参考下表。

instance parametername parameterreturn value

*

NULL

undefined

invalid instance

*

undefined

NULL

xrEnumerateInstanceExtensionProperties

fp

NULL

xrEnumerateApiLayerProperties

fp

NULL

xrCreateInstance

fp

NULL

* (any name not covered above)

NULL

instance

core OpenXR function

fp1

instance

enabled extension function for instance

fp1

instance

* (any name not covered above)

NULL

  • 当参数instance是NULL时,但是name是xrEnumerateInstanceExtensionProperties/ xrEnumerateApiLayerProperties/ xrCreateInstance中任意一个,则返回对应name的函数fp。
  • 当instance是有效的对象时,如果name是core OpenXR function或者使能的扩展层extension的function,则会返回对应name的函数fp。
  • 如果name是不存在的函数名称,无论instance是否有效,都会返回NULL。

4. Instance

OpenXR instance是一个允许OpenXR application和runtime进行通信的句柄对象。application通过调用xrCreateInstance()和接收一个XrInstance对应的handle完成通信。

XrInstance对象存储和追踪OpenXR相关应用的状态,不需要在application的全局地址空间中存储任何这样的状态。由于instance对象对于application是不透明的,因此application可以创建多个instance,并安全封装application的OpenXR state。

OpenXR runtime可能会限制同时创建和使用XrInstance对象的数量,但他们必须支持每个进程至少创建和使用一个XrInstance对象。

4.1 API layers和Extensions

API layers或者扩展层可以提供附件功能。API Layer禁止添加或者修改OpenXR function的定义,而扩展层可以。

API layers函数集的使能要在创建instance时指定,这些API layers能够拦截(intercept)任何分发给该instance或者它的子类对象的函数。

API layers示例可以包含(但不限制于):

  • dump out OpenXR API的调用
  • 执行OpenXR校验。

4.1.1. xrEnumerateApiLayerProperties()

XrResult xrEnumerateApiLayerProperties(uint32_t                                    propertyCapacityInput,uint32_t*                                   propertyCountOutput,XrApiLayerProperties*                       properties);
  • 该函数决定哪些API layers集是可用的。
  • 参数propertyCapacityInput是属性array的容量值,0表示请求检索需要的capacity。
  • 参数propertyCountOutput是指向要写入属性数量的指针,或者是指向所需capacity的指针,以防propertyCapacityInput不足的情况。
  • 属性是指向XrApiLayerProperties结构体数组的指针,如果propertyCapacityInput=0,则可以为NULL。
  • 由于Runtime的外部操作,layers的可用列表在任何时间可能变化,因此该方法的使用相同的参数调用两次,返回结果可能不同。

一旦创建了instance,使能的layers在该instance的有效生命周期内都会继续enabled和valid,即使其中一些layer对未来的instance不可用。

4.1.2. XrApiLayerProperties结构体

typedef struct XrApiLayerProperties {XrStructureType    type;void*              next;char               layerName[XR_MAX_API_LAYER_NAME_SIZE];XrVersion          specVersion;uint32_t           layerVersion;char               description[XR_MAX_API_LAYER_DESCRIPTION_SIZE];
} XrApiLayerProperties;

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

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

相关文章

【LeetCode】121. 买卖股票的最佳时机(简单)——代码随想录算法训练营Day48

题目链接:121. 买卖股票的最佳时机 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能…

BetterDisplay Pro for Mac v2.0.11激活版:屏幕显示优化专家

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 软件下载:BetterDisplay Pro for Mac v2.0.11激活版下载 🔍 精准校准&#xf…

Unity的相机跟随和第三人称视角

Unity相机跟随和第三人称视角 介绍镜头视角跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 思路跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 镜头旋转代码人物移动的参考代码注意 介绍 最近足球项目的镜头在做改动,观察了一下实况足球的视角&#x…

npm digital envelope routines::unsupported

问题描述:npm运行命令报错:digital envelope routines::unsupported 原因:node版本过高 解决方案:在运行命令之前加上 SET NODE_OPTIONS--openssl-legacy-provider && SET NODE_OPTIONS--openssl-legacy-provider &&a…

阿里云服务器免费6个月,居然又出了企业版

我之前收到了阿里云的免费6个月服务器,现在上面挂着一些网页。 由于带宽只有1M,所以用得不多。 今晚本来打算买台新服务器,发现阿里云6个月免费促销居然出了企业版。 之前只有一个版本。 我手头正好有资源,于是又免费来了一台服…

Eslint在Vscode中使用技巧的相关技巧

ps :该文章会详细记录构建一个脚手架遇到的问题,会持续更新,请定时查看 Eslint相关​ 在vscode中使用eslint插件 在vscode中用户配置没有开启eslint.enable 在vscode中工作区配置开启eslint.enable settings.json中没有做eslint相关配置 在编写的vue…

敏捷方法简介

敏捷方法简介 特点 适应性,应对变化以人为本,发挥人的特性迭代增量式开发,逐版本更新 实践 极限编程 特点 加强交流从简单做起寻求反馈实事求是 水晶系列方法 特点 以人为中心,机动性一组经过证明、对不同类型项目非常有效…

【QT】Qt Charts概述

目录 1 QtCharts模块 2 图表的主要组成部分 2.1 QChartView的功能 2.2 序列 2.3 坐标轴 2.4 图例 3 一个简单的QChart绘图程序 QtCharts是Qt提供的图表模块,在Qt5.7以前只有商业版才有Qt Charts,但是从Qt5.7开始,社区版本也包含了Qt C…

蓝桥杯倒计时41天!DFS进阶1——回溯

DFS进阶1——回溯 先说一下回溯的板子 dfs(){ for(......){标记信息dfs()撤销标记 } }回溯模板——递归实现排列型枚举 题目分析 其实就是对1~n的数字全排列,这里就可以用dfs去做,1~n全排列我其实是确定每一个位置我应该放哪一个数字,那么…

Qt程序设计-解析和生成json详解

目录 概述 JSON的两种结构 解析和生成json 解析对象结构 生成对象结构

【MySQL】mvcc以及三个重要日志

🍎个人博客:个人主页 🏆个人专栏:【】数据库 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 MVCC关键概念: MVCC机制的优点: 三个重要的日志: 重做日志: 回滚日志&am…

【Java项目介绍和界面搭建】拼图小游戏——打乱图片顺序

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

再次走到了个人发展的十字路口

人生有非常多的十字路口 诸如:大学选择专业、毕业选择公司、选择技术方向、两年发展方向、三年发展方向、五年发展方向。 在之前,我选择深入做elasticsearch,做专精es搜索和优化。做了大概4年时间。 但是现在又走到了很难抉择的十字路口 第…

网络仿真(一)

网络仿真的意义 在网络规划和设计、网络设备研发、网络协议开发中,需要一种手段来反映和预测网络的性能 网络仿真可以提高网络规划设计的可靠性和准确性,明显降低网络投资风险,减少不必要的浪费 Ns-2 is a discrete event simulator Sched…

持安科技亮相张江高科895创业营,总评分第三名荣获「最具创新性企业」!

近日,张江高科895创业营(第十三季)信息安全专场Demo day&结营仪式在上海集成电路设计产业园圆满落幕。本季创业营通过多种渠道在海内外甄选优秀创业项目,一共择优录取了29家入营,最终甄选出9家代表参加Demo day路演…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘报错解决

安装labelme出错了 根据爆栈的提示信息,我在cmd运行以下命令之后一切正常了,解决了问题! pip install urllib31.26.6参考网址:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compile…

一文彻底搞懂基于数组和链表分别实现LRU算法

文章目录 1. LRU算法2. 基于数组实现LRU算法3. 基于链表实现LRU算法 1. LRU算法 常见的缓存淘汰策略有三种,分别是:先进先出策略FIFO(First In,First Out)、最少使用策略LFU(Least Frequently Used&#x…

董兆祥出席工业废水资源化,开创变废为宝新途径演讲

演讲嘉宾:董兆祥 董事长 河北奥博水处理有限公司 演讲题目:工业废水资源化,开创变废为宝新途径 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明确“低碳经济”新的战略目标,热…

springcloud:3.2测试超时机制

服务提供者 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 PaymentController【控制层】 /*** 测试超时机制** return*/GetMapping("/timeout")public String TimeOut() {try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {…

应用层DDoS防护:理解、必要性与实现策略

一、应用层简介 应用层,也称作第七层,是OSI(开放系统互联)模型中的最高层。在这一层,数据以特定的应用程序协议格式进行传输,如HTTP、FTP、SMTP等。应用层的主要职责是为用户提供网络服务,如文…