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.pswp.cn/news/714137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714137.shtml
英文地址,請注明出處:http://en.pswp.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等。應用層的主要職責是為用戶提供網絡服務,如文…