OpenXR 超详细spec--Chapter 2 基本原理

2.5. Runtime

An OpenXR runtime是实现OpenXR API的软件。一个系统中可能安装不止一个openXR runtime,但是在任何时间只有一个runtime是active。

2.6. Extensions

OpenXR是一个可扩展的API,可以通过添加new features进行扩展。和其他Khronos APIs类似,extension可以用来expose new OpenXR functions or modify 现有的openXR functions的功能。 Extensions是可选的,因此必须在扩展功能可用之前先由application使能它。因为Extensions是可选的,他们只能在runtime、graphics platforms、OS的子集上实现。因此,application必须先查询哪些extensions是可用的,然后再enable extensions。 Application使用xrEnumerateInstanceExtensionProperties()查询可用的extensions list。一旦application确定了支持哪些extension,它可以在调用xrCreateInstance()期间启用extensions的某些子集。 OpenXR Extenstions具有唯一的name,该name可以传达所提供功能的信息。

格式如下:

  • “XR_” 前缀来标识它是一个openXR extension。
  • Vendor tag的字符串标识也是扩展,tag必须是大写字母和十进制数字。
  • KHR:是Khronos extension。
  •  “EXT”:是非Khronos extension。
  • “_”下划线 唯一标识扩展的字符串,它只能使用小写字母和十进制数字,子串之间用“_”连接。 Eg:XR_KHR_composition_layer_cube

2.7 API Layers

OpenXR是一个分层的API,意味着用户或application可以在application和runtime实现之间插入API layers。这些API layers能够提供额外的功能,他们通过从上层拦截OpenXR功能来执行不同的操作,这个不同的操作是和没有该layer的对比。 在最简单的情况下,the layer仅仅使用相同参数向下调用下一层,但是一个更复杂的layer可能会实现它下层或者runtime中不存在的API功能。这种机制本质上是一种架构的“function shimming函数填充”或者“intercept拦截”feature,这种架构被设计到openXR中,mean to replace more informal methods of "hooking" API calls.

2.8. Return Codes

虽然核心API没设计去捕获不正确的使用,但一些情况仍需要return codes。API中的函数通过return code返回他们的状态。

Return code有两类:

  • Suceessful completion codes:非负值
  • Runtime error code:负值。
typedef enum XrResult {XR_SUCCESS = 0,XR_TIMEOUT_EXPIRED = 1,XR_ERROR_VALIDATION_FAILURE = -1,XR_ERROR_RUNTIME_FAILURE = -2,
}

2.9. Handles

2.10. Object Handle Types

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

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

相关文章

TCP的三次握手和4次挥手

一、首先讲一下TCP的由来 最开始,人们考虑到将网络信息的呼唤与回应进行规范,达成一种公认的协议,就好像没有交通规则的路口设定交通规则。 人们设计出完美的OSI协议,这个协议包含七个层次由下到上分别是: 物理层&…

数据结构知识点汇总(持续更新版)

数据结构 一、绪论 检测知识: 1.1基本概念 以前的计算机 弹道计算机 现如今 主要运用于非数值的计算 基本概念和术语 数据:是信息的载体,描述客观事物属性的值,字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的…

如何搭建“Docker Registry私有仓库,在CentOS7”?

1、下载镜像Docker Registry docker pull registry:2.7.1 2、运行私有库Registry docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restartalways --name registry registry:2.7.1 3、拉取镜像 docker pull busybox 4、打标签,修改IP&#x…

原创 | 一文读懂高斯过程

作者:贾恩东 本文约2700字,建议阅读9分钟 本文将使用通俗易懂的语言引导读者入门高斯过程。 高斯过程(Gaussian Process)是机器学习中一个相当基础的概念,本文中笔者将使用通俗的语言让读者入门高斯过程。 高斯过程&am…

java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)

目录 java用modbus4j的RTU去操作那些寄存器1. modbus-RTU-java操作读线圈寄存器2. modbus-RTU-java操作写线圈寄存器3. modbus-RTU-java操作读保持寄存器4. modbus-RTU-java操作写保持寄存器5. modbus-RTU-java操作读离散输入寄存器6. modbus-RTU-java操作读输入寄存器 java用m…

重置(resetting)CSS 和 标准化(normalizing)CSS 的区别是什么?你会选择哪种方式,为什么?

重置(resetting)CSS 和标准化(normalizing)CSS 是两种不同的方法来处理浏览器默认样式的差异。 重置CSS是指将浏览器默认样式重置为一致的样式,以避免浏览器默认样式对网页布局和设计的影响。重置CSS会将所有元素的样…

Python之Web开发中级教程----创建Django子应用

Python之Web开发中级教程----创建Django子应用 基于上一个教程的Django项目(可以先看上一集,链接如下:) https://mp.csdn.net/mp_blog/creation/editor/136724897 2.创建子应用 python manager.py startapp book admin.py&…

FPGA静态时序分析与约束(三)、读懂vivado时序报告

系列文章目录 FPGA静态时序分析与约束(一)、理解亚稳态 FPGA静态时序分析与约束(二)、时序分析 文章目录 系列文章目录前言一、时序分析回顾二、打开vivado任意工程2.1 工程布局路由成功后,点击vivado左侧**IMPLEMENT…

Oracle 19c 傻瓜式安装

1.创建用户和组: /usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54323 oper /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle 2.给oracle设置密码 passwd oracle 3.关闭防火墙和selinux systemctl s…

❤ css布局篇

❤ css布局篇 一、基础布局 &#xff08;1&#xff09;居中布局 ① 文字居中 <div class"div1">测试文字居中</div> body {margin: 0;padding: 0;padding: 10%; } .div1 {width: 100px;height: 100px;background: cadetblue;text-align: center; }te…

easyexcel读和写excel

请直接看原文: JAVA使用easyexcel操作Excel-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 之前写过一篇《JAVA操作Excel》&#xff0c;介绍了jxl和poi读写Excel的实现&am…

C语言-写一个简单的Web服务器(三)

上次我们研究了如何将解析web前端的请求&#xff0c;本次内容里我们将服务器的内容响应到前端&#xff0c;让浏览器展示。 响应数据到前端 服务器将数据响应到前端有其必要的返回数据&#xff0c;其结构如下&#xff0c;中间\r\n为换行&#xff0c;这个在不同系统&#xff08;w…

信也科技发布消费者权益保护2023年度报告: 科技驱动、服务为先、合作共建社会化消保体系

3月15日消费者权益日当天&#xff0c;信也科技发布《消费者权益保护2023年度报告》&#xff08;下称《报告》&#xff0c;消费者权益保护简称“消保”&#xff09;。该报告为信也科技消保委员会成立后首份公开披露的消保工作年度总结。《报告》显示&#xff0c;信也科技通过智能…

SRS-220VDC-4Z-10A静态中间继电器 额定电压DC220V 四副转换触点 JOSEF约瑟

系列型号&#xff1a; SRS-24VDC-4Z-8A静态中间继电器&#xff1b;SRS-24VDC-4Z-10A静态中间继电器&#xff1b; SRS-24VDC-4Z-16A静态中间继电器&#xff1b;SRS-24VAC-4Z-8A静态中间继电器&#xff1b; SRS-24VAC-4Z-10A静态中间继电器&#xff1b;SRS-24VAC-4Z-16A静态中…

Gitee 实战配置

一、Gitee 注册帐号 官网&#xff1a;https://gitee.com点击注册按钮。填写姓名。填写手机号。填写密码。点击立即注册按钮 二、安装GIT获取公钥 1.官网下载git下载地址&#xff1a;https://git-scm.com/download/win 2.安装git&#xff0c;双击运行程序&#xff0c;然后一直下…

小程序学习4 mock

services/home.js import { config, cdnBase } from ../../config/index;/** 获取首页数据 */ function mockFetchHome() {const { delay } require(../_utils/delay);const { genSwiperImageList } require(../../model/swiper);return delay().then(() > {return {swip…

代码规范工具

pip install pre-commit然后可以在代码仓里面配置pre-commit pre-commit install这样子代码检查的规范的执行就会注册在git的hook当中 然后可以在pre-commit的config里面配置需要的代码规范&#xff1b; 有些规范可以帮你修改&#xff0c; 有些规范不会帮你修改&#xff0c;只…

Ubuntu虚拟磁盘扩容

1、打开VMware 2、第二步&#xff1a;启动虚拟机后&#xff0c;安装gparted工具&#xff1a;sudo apt-get install gparted 3、第三步&#xff1a;查看设备disk自带工具 4、第四步&#xff1a;选项已经存在的/dev/sda2磁盘&#xff1a;从左到右进行操作“resize” 5、重启…

【Java基础】JVM双亲委派模型

一、什么是JVM的双亲委派模型&#xff1f; 双亲委派模型是类加载器的一种工作机制&#xff0c;是Java设计者为了保证类的安全性和一致性而提出的一种规则(可以理解为类加载器为了加载类时保证类的安全性和一致性而设计的一种规则)。此规则的定义如下&#xff1a; 1、类加载器接…

常量指针,指针常量;函数指针,指针函数;指针数组,数组指针 一文全解!带示例

前言&#xff1a; 最近准备面试&#xff0c;准备把这几个乱人心智的概念一网打尽&#xff0c;顺便记录一下~ 常量指针&#xff0c;指针常量&#xff1a; 且看下面的这些&#xff1a; const int a; int const a; const int *a; int* const a; int const *a const;//带两个con…