当前位置: 首页 > news >正文

OpenXR 超详细的spec--API初始化介绍

 3.API 初始化

3.1 Exported Functions

实现API loader的动态链接库(so/dll)必须export all core OpenXR API functions。然而application可以通过使用xrGetInstanceProcAddr()来获取指向extension函数的指针。

3.2 Function Pointers

OpenXR所有函数的指针都可以通过函数xrGetInstanceProcAddr()得到。

XrResult xrGetInstanceProcAddr(XrInstance                                  instance,const char*                                 name,PFN_xrVoidFunction*                         function);
  • instance: XrInstance类型,可以是NULL,也可以是任何有效的instance;
  • name:待获取fp的函数名称;
  • function:返回的函数指针fp。

Loader必须导出所有OpenXR核心函数的函数符号,这样application就可以不用使用xrGetInsanceProcAddr()来使用OpenXR core functions。

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。

3.3  Runtime interface Negotiation

待完成

相关文章:

OpenXR 超详细的spec--API初始化介绍

3.API 初始化 3.1 Exported Functions 实现API loader的动态链接库(so/dll)必须export all core OpenXR API functions。然而application可以通过使用xrGetInstanceProcAddr()来获取指向extension函数的指针。 3.2 Function Pointers OpenXR所有函数的指针都可以通过函数xr…...

认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解

目录 引出认识通讯协议1、TCP/IP协议,UDP协议的区别2、HTTP通讯协议的讲解 Redis冲冲冲——缓存三兄弟:缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解 认识通讯协议 …...

谈一谈工作中的前后端功能开发范围

在BS开发中,往往都是团队开发,分为前端和后端,往往经常会遇到此处功能是前端进行功能开发还是后端进行功能开发的讨论,本文以我自己的观点进行论述。 笔者的观点是: 功能实现的优先性:您强调,无…...

Kubernetes 学习总结(46)—— Pod 不停重启问题分析与解决

我们在做性能测试的时候,往往会发现我们的pod服务,频繁重启,通过kubectl get pods 命令,我们来逐步定位问题。 现象:running的pod,短时间内重启次数太多。 定位问题方法:查看pod日志 kubectl get event …...

Vulnhub靶机:Bellatrix

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.4) 靶机:Bellatrix(10.0.2.9) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entry/hogwa…...

深入探讨 AutoGPT:彻底改变游戏的自主 AI

原文地址:Deep Dive into AutoGPT: The Autonomous AI Revolutionizing the Game 2023 年 4 月 24 日 AutoGPT 是一个功能强大的工具,它通过 API 使用 GPT-4 和 GPT-3.5,通过将项目分解为子任务并在自动循环中使用互联网和其他工具来创建完…...

Java Web之网页开发基础复习

tomcat之网页开发基础复习 **声明** :HTML标准规范 </!doctype> <html> : 根标签 <head>: 头部标签 内含<title><meta><link><style> <body>: 主体 <body></body> html标签 单标签: <标签名 \> 双标…...

华容道问题求解第一部分_详细设计(一)之棋子和游戏类_初始化部分

按&#xff1a;因为自控力和能力的原因&#xff0c;这个其实是在和代码同时进行的。 主要 类 说明 这一层是整个项目的基础&#xff0c;将对未来的算法的效率产生重要影响。为了和界面隔离&#xff0c;以及自身逻辑的清晰&#xff0c;下面的两个类是必须的&#xff0c;棋子类…...

【框架】Spring 框架重点解析

Spring 框架重点解析 1. Spring 框架中的单例 bean 是线程安全的吗&#xff1f; 不是线程安全的 Spring 框架中有一个 Scope 注解&#xff0c;默认的值是 singleton&#xff0c;即单例的&#xff1b;因为一般在 Spring 的 bean 对象都是无状态的&#xff08;在生命周期中不被…...

js中的内存泄漏

理解 内存泄漏是计算机,中由于疏忽或者错误造成程序未能释放已经不在使用的内存,知道浏览器结束 垃圾回收机制 js具有自动的垃圾回收机制,垃圾收集器会定期(周期性)的找出那些不在继续使用的变量,然后释放内存 常见的内存泄漏 意外的全局变量 function foo(){bar 123123…...

营业执照年报申报

姿势&#xff1a;营业执照年报申报 借鉴文章&#xff1a;个体工商户年报申报流程&#xff08;不要再花冤枉钱&#xff09; 1、国家企业信用信息公示系统 地址&#xff1a;https://www.gsxt.gov.cn/index.html 2、登录&#xff08;重庆的方式二简单&#xff09;...

Springboot教程(五)——单元测试

idea中一般使用JUnit进行单元测试 基本使用 我们可以在idea的test文件夹下的XXXXApplicationTests内进行单元测试&#xff1a; 可以在Test标注的方法上写测试代码&#xff1a; SpringBootTest class C0101ApplicationTests {Testfun contextLoads() {println("Hello …...

【Kotlin】函数

1 常规函数 1.1 无参函数 fun main() {myFun() }fun myFun() {println("myFun") // 打印: myFun } 1.2 有参函数 1&#xff09;常规调用 fun main() {myFun("myFun") // 打印: myFun }fun myFun(str: String) {println(str) } 2&#xff09;形参指定默…...

Unity生命周期函数解析

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 mp.weixin.qq.com Unity生命周期函数解析 Unity 生命周期函数是在游戏对象的不同阶段被调用的方法&#xff0c;通过这些函数&#xff0c;我们可以在不同的时刻执行特定的代码。在这篇文章中&#xff0c;我们将一步步解析 Unit…...

【Qt】QTextEdit/QPlainTextEdit 实现 Tab 键多行缩进与反缩进

【Qt】QTextEdit/QPlainTextEdit 实现 Tab 键多行缩进与反缩进 文章目录 I - 主要原理II - 代码实现2.1 - 自定义类2.2 - 实现 Tab 缩进2.3 - 实现反缩进 III - 参考链接 I - 主要原理 由于 QTextEdit 和 QPlainTextEdit &#xff0c;都无法实现多行选中缩进与反缩进&#xff…...

C++缺陷与思考

数组隐式转换为指针 size_t func(int a[10]) {return sizeof(a); }int a[100]; func(a); // 指针大小 sizeof(a); // 数组大小函数的参数看似是一个数组形式&#xff0c;但事实上他已经退化为指针了&#xff0c;也就是等价于size_t func(int* a)&#xff0c;而数组作为参数传…...

无公网ip环境使用DS file软件远程访问内网群晖NAS中储存的文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用程序具有…...

软件工程基础

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/136446772 一. 软件工程 1、软件危机。具体表现为&#xff1a;软件开发进度难以预测、软件开发成本难以控制、软件功能难以满足用户期望、软件质量无法保证、软件难以维护和软件缺少适当的文档资料。 …...

alzet供应商你值得拥有

在20世纪70年代&#xff0c;ALZE公司研发出来一款巧妙的药物输送装置——Alzet osmotic pump。这款产品如胶囊般精致小巧&#xff0c;它既有胶囊的外表&#xff0c;也具有胶囊的作用。在Alzet osmotic pump中藏有可以装配药物溶液的空间。此款胶囊泵如同一个小投递员&#xff0…...

x86中的TSS与任务切换

前言 今天在学习《深入理解Linux内核》的时候&#xff0c;发现出现了一个新的名词TSS&#xff08;Task-State Segment&#xff09;&#xff0c;这还是我第一次了解到原来x86提供了硬件级别的任务切换功能&#xff0c;之前以为任务切换都是操作系统实现的来着&#xff0c;这里也…...

Neeshck-Z-lmage_LYX_v2应用落地:国风插画师本地AI绘画工作流搭建

Neeshck-Z-lmage_LYX_v2应用落地&#xff1a;国风插画师本地AI绘画工作流搭建 想成为一名国风插画师&#xff0c;但苦于绘画技巧需要长期积累&#xff1f;或者&#xff0c;你已经是一位创作者&#xff0c;却常常被灵感枯竭和重复性工作所困扰&#xff1f;今天&#xff0c;我将…...

NPM -v报错Error: Cannot find module ‘./cli/validate-engines.js‘

问题描述 C:\Users\Administrator>npm -v Error: Cannot find module ./cli/validate-engines.js Require stack: - C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\lib\cli.js - C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\bin\npm-cli…...

极客专属:OpenClaw命令行操控Qwen3-14B镜像高级技巧

极客专属&#xff1a;OpenClaw命令行操控Qwen3-14B镜像高级技巧 1. 为什么需要命令行操控OpenClaw 第一次接触OpenClaw时&#xff0c;我和大多数人一样被它的Web控制台吸引。可视化界面确实降低了使用门槛&#xff0c;但当我尝试构建自动化工作流时&#xff0c;发现图形界面反…...

告别在线翻译!用Ollama本地部署translategemma-4b-it保护隐私

告别在线翻译&#xff01;用Ollama本地部署translategemma-4b-it保护隐私 1. 为什么选择本地部署翻译模型 1.1 在线翻译的隐私风险 当我们使用在线翻译服务时&#xff0c;所有输入的内容都会被发送到服务提供商的服务器。这意味着&#xff1a; 敏感的商业文档可能被第三方存…...

扶摇速记:眼前流水,曲折前向

英语单词 went&#xff0c;意为【走】或走【去】&#xff0c;它是动词 go 的过去式。 went v. (go过去式) 去&#xff0c;走 我们可以这样去理解&#xff0c;其中 -t&#xff0c;表动词&#xff0c;是构词语法形式&#xff0c;含义主要来自wen-&#xff0c;而went 或 wen-的首字…...

Linux C编程基础知识(命令行参数)

getopt接口int getopt(int argc, char *const argv[], const char *optstring);参数说明&#xff1a;参数作用argc/argv直接传入 main 函数的命令行参数&#xff08;个数 数组&#xff09;optstring选项规则字符串&#xff0c;核心规则&#xff1a;- 单个字符&#xff08;如 h…...

城通网盘直链解析:三步实现免费高速下载的完整方案

城通网盘直链解析&#xff1a;三步实现免费高速下载的完整方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为网盘下载速度慢而烦恼吗&#xff1f;ctfileGet为你提供了一个智能解决方案&#xf…...

STM32遥控灭火消防小车设计与实现

1. 项目概述这款基于STM32设计的遥控灭火消防小车是我在嵌入式系统开发领域的一次创新尝试。作为一名从事智能硬件开发多年的工程师&#xff0c;我深刻理解火灾救援中"黄金三分钟"的重要性。传统消防设备往往受限于响应速度和操作灵活性&#xff0c;而这款小车正是为…...

CSS如何避免浮动元素换行_计算所有浮动元素的总宽度不超过父容器宽度

浮动元素换行是因子元素总宽度&#xff08;含padding、border、margin&#xff09;超过父容器可用宽度&#xff0c;导致最后一个被挤至下一行&#xff1b;这是float原始行为&#xff0c;非bug&#xff0c;需用box-sizing:border-box、flex布局等规避。浮动元素换行是因为父容器…...

Java开发踩坑:一次 JVM 调优实战记录

在Java开发中&#xff0c;性能问题一直是面试和实际项目中重点关注的点。尤其是高并发系统&#xff0c;JVM 的调优直接影响系统的稳定性和响应速度。今天&#xff0c;我将结合一次真实项目经历&#xff0c;分享一次完整的 JVM 调优实战记录&#xff0c;帮助大家掌握核心原理和实…...