-
Notifications
You must be signed in to change notification settings - Fork 5
/
index.php
351 lines (284 loc) · 17.8 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
<?php
$static_title = 'Khronos OpenXR Registry';
include_once("../../assets/static_pages/khr_page_top.php");
?>
<p> The OpenXR™ registry contains formatted specifications of the OpenXR API,
header files, API reference pages, the reference card, and related
documentation. The registry also links to the GitHub repository where
the sources for these documents can be found. </p>
<p> For general information on OpenXR, including information on implementations,
developer resources, and more, see the <a href="https://www.khronos.org/openxr">
OpenXR homepage</a>. </p>
<p> Index to the OpenXR Registry page content: </p>
<ul>
<li> <a href="#apispecs"> <b>OpenXR 1.1 API Specifications</b> </a> (also applies to 1.0 development) </li>
<li> <a href="#refguide"> <b>OpenXR 1.0 Reference Guide</b> </a> </li>
<li> <a href="#refpages"> <b>OpenXR API Reference Pages</b> </a> </li>
<li> <a href="#loader"> <b>OpenXR Loader Design Document</b> </a> </li>
<li> <a href="#styleguide"> <b>OpenXR™ Documentation and Extensions: Procedures and Conventions</b> </a> </li>
<li> <a href="#extprocess"> <b>OpenXR™ Working Group Extension Processes</b> </a> </li>
<li> <a href="#ctsusage"> <b>OpenXR™ Conformance Test Suite Usage Instructions and Developer Guide</b> </a> </li>
<li> <a href="#changelogs"> <b>Changelogs for the OpenXR API Specifications, SDK, and CTS</b> </a> </li>
<li> <a href="#repos"> <b>OpenXR GitHub Repositories</b> </a>
<ul>
<li> <a href="#repo-docs"> <b>API and Extension Specification Repository</b> </a>
<ul>
<li> <a href="#headers"> <b>Header Files</b> </a> </li>
<li> <a href="#apiregistry"> <b>API Registry</b> </a> </li>
</ul> </li>
<li> <a href="#repo-loader"> <b>Loader and Validation Layers Repositories</b> </a>
<ul>
<li> <a href="#repo-sdk"> KhronosGroup/<b>OpenXR-SDK</b> </a> </li>
<li> <a href="#repo-sdk-source"> KhronosGroup/<b>OpenXR-SDK-Source</b> </a> </li>
</ul> </li>
<li> <a href="#repo-cts"> KhronosGroup/<b>OpenXR-CTS Conformance Test Suite Repository</b> </a> </li>
<li> <a href="#repo-other"> <b>Other Repositories</b> </a> </li>
</ul> </li>
<li> <a href="#apispecs-1.0"> Obsolete: <b>OpenXR 1.0.34 API Specifications</b> </a> </li>
<li> <a href="#provisional"> Obsolete: <b>OpenXR 0.90 Provisional Specification</b> </a> </li>
<li> <a href="#feedback"> <b>Providing Feedback on the Registry</b> </a> </li>
</ul>
<h2 id="apispecs"> <b>OpenXR 1.1 API Specifications</b> </h2>
<p> We currently publish the OpenXR API Specification in PDF and HTML forms.
There are several versions of the OpenXR 1.1 Specification, as well as
related Specifications and collateral material: </p>
<ul>
<li> <b>OpenXR 1.1 API + all published Extensions</b>
<a href="specs/1.1/html/xrspec.html">(Single-file HTML)</a>
<a href="specs/1.1/pdf/xrspec.pdf">(PDF)</a> <br>
This Specification includes Khronos-defined <kbd>KHR</kbd> extensions
such as the graphics API interfaces used on different platforms
and window systems, as well as all vendor-specific and multi-vendor
<kbd>EXT</kbd> non-Khronos extensions that have been incorporated into
the Specification Repository. </li>
<li> <b>OpenXR 1.1 API + Khronos-defined Extensions</b>
<a href="specs/1.1-khr/html/xrspec.html">(Single-file HTML)</a>
<a href="specs/1.1-khr/pdf/xrspec.pdf">(PDF)</a> <br>
This Specification includes ratified Khronos-defined <kbd>KHR</kbd>
extensions such as the graphics API interfaces used on different
platforms and window systems. </li>
</ul>
<h2 id="refguide"> <b>OpenXR 1.0 Reference Guide</b> </h2>
<p> The <a href="specs/1.0/refguide/openxr-10-reference-guide.pdf">
OpenXR 1.0 Reference Guide (PDF)</a> is a compact document summarizing
the OpenXR 1.0 functions, structures, and enumerants, as well as
providing an overview of the input system and a typical OpenXR application's flow.
It remains applicable to OpenXR 1.1.</p>
<h2 id="refpages"> <b>API Reference Pages</b> </h2>
<p> The OpenXR API Reference Pages describe how to use individual API
and extension commands. The goal is to define all commands and
structures in the core API and extensions, although there may be some
omissions in non-<kbd>KHR</kbd> extensions.</p>
<ul>
<li> <b>OpenXR 1.1 Reference Pages</b>
<a href="specs/1.1/man/html/openxr.html">(Single-file HTML)</a>
<a href="specs/1.1/man/html/">(HTML, one file per reference page)</a>
</li>
</ul>
<p> The reference pages are generated by automatic extraction from the
Specification source, and are not separately checked into GitHub. The
set of pages linked above are generated from the 1.1 API specification
including all extensions.</p>
<h2 id="loader"> <b>OpenXR™ Loader Design Document</b> </h2>
<p> The <a href="specs/1.1/loader.html">
OpenXR™ Loader Design Document</a> describes the underlying design of
the standard cross-platform loader, along with some platform-specific
details. It also describes how runtimes interact with the loader and
other software that may wish to enumerate or interact with OpenXR
runtimes outside of or prior to the ratified specification.</p>
<h2 id="styleguide"> <b>OpenXR™ Documentation and Extensions: Procedures and Conventions</b> </h2>
<p> The <a href="specs/1.1/styleguide.html">
OpenXR™ Documentation and Extensions: Procedures and Conventions</a>
document (colloquially, the “Style Guide”) defines mandatory and
recommended conventions and best practices used in creating and modifying
the API Specification and extensions. Authors wishing to write OpenXR
extension specifications, or contribute to existing specifications, should
familiarize themselves with and adhere to this document.</p>
<h2 id="extprocess"> <b>OpenXR™ Working Group Extension Processes</b> </h2>
<p> The <a href="specs/1.1/extprocess.html">
OpenXR™ Working Group Extension Processes</a> document is a concise definition
of the processes followed to add or promote an extension within the OpenXR
specification. It is meant to be read in conjunction with the Style Guide.
Authors wishing to write OpenXR extension specifications must follow both
this document as well as the Style Guide.</p>
<h2 id="ctsusage"> <b>OpenXR™ Conformance Test Suite Usage Instructions and Developer Guide</b> </h2>
<ul>
<li><a href="conformance/cts_usage.pdf">OpenXR-CTS Usage Guide in PDF format</a></li>
<li><a href="conformance/cts_usage.html">OpenXR-CTS Usage Guide in HTML format</a></li>
</ul>
<p> The OpenXR-CTS Usage Guide provides instructions on the usage of the CTS as part
of a conformance submission, as well as additional information on the design and
usage of the test suite. For more information on conformance and the Adopter
program, see the <a href="#repo-cts">information on the OpenXR-CTS repo</a>.</p>
<p><em>Note</em> that this is updated at a different cadence than the other documents here:
it is updated upon release of a new approved revision of the OpenXR-CTS, rather than upon
release of a new version of the OpenXR spec.</p>
<h2 id="changelogs"> <b>Changelogs for the OpenXR API Specifications, SDK, and CTS</b> </h2>
<p> Changelogs are maintained for the Specification, SDK, and Conformance Test
Suite (CTS). Some changelog items are shared between the Specification and SDK
changelog documents, where applicable. Each <a href="#repos">repository</a>
contains the relevant changelog file. The links below go to a formatted view
of each changelog where it is found on GitHub.</p>
<ul>
<li>
<a href="https://github.com/KhronosGroup/OpenXR-Docs/blob/main/CHANGELOG.Docs.md">Changelog for OpenXR Specifications</a>
- in <a href="#repo-docs">OpenXR-Docs</a> and OpenXR-Registry repos</li>
<li>
<a href="https://github.com/KhronosGroup/OpenXR-SDK-Source/blob/main/CHANGELOG.SDK.md">Changelog for OpenXR SDK</a>
- in <a href="#repo-sdk">OpenXR-SDK</a> and <a href="#repo-sdk-source">OpenXR-SDK-Source</a> repos</li>
<li>
<a href="https://github.com/KhronosGroup/OpenXR-CTS/blob/approved/CHANGELOG.CTS.md">Changelog for OpenXR CTS</a>
- in the <a href="#repo-cts">OpenXR-CTS</a> repo</li>
</ul>
<h2 id="repos"> <b> OpenXR GitHub Repositories </b> </h2>
<h3 id="repo-docs"> <b>API and Extension Specification Repository</b> </h3>
<p> The <a href="https://github.com/KhronosGroup/OpenXR-Docs">
OpenXR-Docs</a> repository contains the AsciiDoc source for the OpenXR
API specification, and for registered OpenXR API extensions. </p>
<p> OpenXR-Docs also contains the generated header files, API Registry
<code>xr.xml</code>, and scripts for spec building and verification. </p>
<h4 id="headers"> <b>Header Files</b> </h4>
<p> For most developers, the header files provided with the generated
loader source in the <a href="#repo-sdk">OpenXR-SDK</a> GitHub
repository is all that's needed. </p>
<p> However, all OpenXR headers provided by Khronos are ultimately obtained
from the <a href="#repo-docs">OpenXR-Docs</a> repository.
If you need to generate a customized version of the headers and/or loader,
use the <a href="#apiregistry">API Registry</a> <code>xr.xml</code> in
<a href="#repo-sdk-source">OpenXR-SDK-Source</a> or
<a href="#repo-docs">OpenXR-Docs</a> as required, together with the
scripts in <b>specification/scripts</b> and/or <b>src/scripts</b>. </p>
<h4 id="apiregistry"> <b>API Registry</b> </h4>
<p> OpenXR defines an API Registry for the API and extensions,
formally defining function prototypes, structures, enumerants, and
many other aspects of the API and extension mechanisms. The OpenXR
Registry is the basis for generating the header files;
AsciiDoc include files used in the Specification, and reference
pages for interface definitions, parameter and member validity
language, and synchronization language; and more. </p>
<p> The canonical location for the registry is the <a href="#repo-docs">
OpenXR-Docs</a> repository in <code>specification/registry/xr.xml</code>,
and that is where any changes should be submitted.
"Read-only" copies, regularly synchronized, exist in the same relative path in: </p>
<ul>
<li> the <a href="#repo-sdk">OpenXR-SDK</a> repository, for optional,
custom code generation by an application. None of the associated
scripts are included in this repository, and all generated files
are pre-generated, so changes to the XML here do not have any
effect except on any custom scripts that might be written explicitly
to consume the XML.</li>
<li> the <a href="#repo-sdk-source">OpenXR-SDK-Source</a> repository, for
header generation, loader and API layer source generation,
and loader documentation generation. Changes to the XML here
affect all these generated files and libraries.</li>
<li> the <a href="#repo-cts">OpenXR-CTS</a> repository, for
header generation, loader (for CTS use) and API layer source
generation, and conformance source generation. Changes to the XML
here affect all these generated files and libraries.</li>
</ul>
<h3 id="repo-loader"> <b>Loader and Validation Layers Repositories</b> </h3>
<p> There are additional Khronos Github repositories containing OpenXR
source code, libraries, and tools.
<h4 id="repo-sdk"> KhronosGroup/<b>OpenXR-SDK</b> </h4>
<p> The <a href="https://github.com/KhronosGroup/OpenXR-SDK">
OpenXR-SDK</a> repository contains: </p>
<ul>
<li> all OpenXR header files (generated and static) </li>
<li> source code and CMake build system for the
OpenXR loader that is used for Linux, Windows, macOS, and Android </li>
<li> all generated source files required to build the loader </li>
<li> rendered HTML of the loader design doc (in <code>doc/loader/</code>) </li>
<li> a copy of the XML registry, for optional custom code generation usage </li> </ul>
<p> Most application developers can use this repository,
as it provides the header and loader with minimum dependencies,
with no requirement for code generation at build time.
It is designed for inclusion in your application's source tree,
as the loader model for OpenXR on Windows is to bundle the loader
(whether statically or dynamically linked) with your application,
rather than installing system-wide. </p>
<p> This repository contains a subset of the <a href="#repo-sdk-source">
OpenXR-SDK-Source</a> repository (only the loader source),
with the generated source code files pre-generated for easier usage.
If you're looking for API layers, sample code, etc. see that repo. </p>
<h4 id="repo-sdk-source"> KhronosGroup/<b>OpenXR-SDK-Source</b> </h4>
<p> The <a href="https://github.com/KhronosGroup/OpenXR-SDK-Source">
OpenXR-SDK-Source</a> repository contains: </p>
<ul>
<li> the static OpenXR header file <code>openxr_platform_defines.h</code> </li>
<li> source code and CMake build system for
<ul>
<li> the OpenXR loader that is used for Linux, Windows, macOS, and Android </li>
<li> two "beta" API layers, <code>XR_LUNARG_core_validation</code>
and <code>XR_LUNARG_api_dump</code> </li>
<li> the <code>hello_xr</code> sample application </li>
<li> tests for the loader </li>
</ul> </li>
<li> a copy of the XML registry, for required code generation usage </li>
<li> code generation scripts (in Python 3) required for the loader,
API layers, and tests </li>
<li> the loader design document source (in AsciiDoc) and the scripts
required to build it </li>
</ul>
<p> OpenXR-SDK-Source is where development of the loader takes place: changes are migrated to
<a href="#repo-sdk">OpenXR-SDK</a> regularly. Unlike that repo, it does not contain the
generated headers or source: you need Python 3.6 or newer on your system to compile this repository. </p>
<p> <b>Note:</b> This repository was formerly known as OpenXR-SDK during the 0.90 time frame,
and has been renamed to make room for the new, simpler <a href="#repo-sdk">OpenXR-SDK</a>
that contains only the loader and headers, and does not require any code generation.</p>
<h3 id="repo-cts">KhronosGroup/<b>OpenXR-CTS Conformance Test Suite Repository</b> </h3>
<p> The <a href="https://github.com/KhronosGroup/OpenXR-CTS">OpenXR-CTS</a>
repository contains the source code for the OpenXR Conformance Tests.
See the <a href="#ctsusage">OpenXR-CTS Usage Guide</a> for instructions
on using the test suite.
Note that while the CTS source code is freely available, you must be a
Khronos Adopter and pay the Adopter Fee in order to use the OpenXR
trademark for your implementation. See the
<a href="https://www.khronos.org/conformance/adopters">Khronos API Adopter Program</a>
page, as well as the formal <a href="https://www.khronos.org/files/conformance_procedures.pdf">
Conformance Process Document</a>, for more information. </p>
<h3 id="repo-other"> <b>Other Repositories</b> </h3>
<p> Other Khronos repositories containing OpenXR material include: </p>
<ul>
<li> The <a href="https://github.com/KhronosGroup/OpenXR-Hpp"
id="openxr-hpp">OpenXR-Hpp</a> repository contains code used to
generate <kbd>openxr.hpp</kbd> and its included headers, which form
a layered C++ binding for OpenXR. </li>
</ul>
<h2 id="apispecs-1.0"> Obsolete: <b>OpenXR 1.0.34 API Specifications</b> </h2>
<p> These are retained for your convenience, as the last pre-1.1 release, but are no longer updated.
The OpenXR 1.1 specification includes all 1.0 content, and portions
exclusive to 1.1 are noted in the text.</p>
<ul>
<li> <b>OpenXR 1.0.34 API + all published Extensions</b>
<a href="specs/1.0/html/xrspec.html">(Single-file HTML)</a>
<a href="specs/1.0/pdf/xrspec.pdf">(PDF)</a></li>
<li> <b>OpenXR 1.0.34 API + Khronos-defined Extensions</b>
<a href="specs/1.0-khr/html/xrspec.html">(Single-file HTML)</a>
<a href="specs/1.0-khr/pdf/xrspec.pdf">(PDF)</a></li>
</ul>
<h2 id="provisional"> Obsolete: <b>OpenXR 0.90 Provisional API Specification Resources</b> </h2>
<p> These are provided for your convenience in porting to 1.0 only.
<b>All users of 0.90 should port to the final 1.0 as soon as possible.</b> </p>
<ul>
<li> <b>OpenXR 0.90 Provisional API + all published Extensions</b>
<a href="specs/0.90/html/xrspec.html">(Single-file HTML)</a>
<a href="specs/0.90/pdf/xrspec.pdf">(PDF)</a> </li>
<li> <b>OpenXR 0.90 Reference Pages</b> including all published Extensions
<a href="specs/0.90/man/html/openxr.html">(Single-file HTML)</a>
<a href="specs/0.90/man/html/">(HTML, one file per reference page)</a>
</li>
<li> The <a href="specs/0.90/refguide/OpenXR-0.90-web.pdf">OpenXR 0.90 API
Overview (PDF)</a> is a compact document providing an overview of the
OpenXR 0.90 API, Input, and Haptics, and a typical OpenXR app's flow. </li>
</ul>
<h3 id="feedback"> <b>Providing Feedback on the Registry</b> </h3>
<p> Khronos welcomes comments and bug reports. To provide feedback on the
OpenXR registry itself (such as reporting missing content, bad links,
etc.), file an issue in the <a
href="https://github.com/KhronosGroup/OpenXR-Registry/issues">
OpenXR-Registry </a> GitHub project. </p>
<p> For the OpenXR Specification or other documentation and tools, file an
Issue on the appropriate <a href="#repos">GitHub Repository</a>. </p>
<?php include_once("../../assets/static_pages/khr_page_bottom.php"); ?>
</body>
</html>