>>> Building on sparc64-0c under games/lwjgl3
BDEPENDS = [multimedia/assimp;graphics/glfw;audio/openal;audio/opus;databases/lmdb;archivers/lz4;lang/gcc/8,-libs;lang/gcc/8,-c++;devel/apache-ant;lang/gcc/8;x11/gtk+3;archivers/unzip;sysutils/xxhash;devel/jdk/11;devel/libffi]
DIST = [games/lwjgl3:lwjgl3-maven-20210208.tar.gz;games/lwjgl3:kotlin-compiler-1.6.20-M1.zip;games/lwjgl3:lwjgl3-3.3.1.1.tar.gz]
FULLPKGNAME = lwjgl3-3.3.1.1
RDEPENDS = [graphics/glfw;multimedia/assimp;audio/opus;audio/openal;archivers/lz4;databases/lmdb;lang/gcc/8,-libs;sysutils/xxhash;x11/gtk+3;devel/libffi;devel/jdk/11]
(Junk lock obtained for sparc64-0c at 1729373890.88)
>>> Running depends in games/lwjgl3 at 1729373890.98
last junk was in x11/qt5/qtbase
/usr/sbin/pkg_add -aI -Drepair apache-ant-1.10.14 assimp-5.2.5 glfw-3.3.9 jdk-11.0.24.8.1v0 libffi-3.4.6 lmdb-0.9.32 lz4-1.10.0 openal-1.23.1v0 opus-1.5.2p0 unzip-6.0p17 xxhash-0.8.2p1
was: /usr/sbin/pkg_add -aI -Drepair apache-ant-1.10.14 assimp-5.2.5 g++-8.4.0p25 gcc-8.4.0p25 gcc-libs-8.4.0p25 glfw-3.3.9 gtk+3-3.24.43 jdk-11.0.24.8.1v0 libffi-3.4.6 lmdb-0.9.32 lz4-1.10.0 openal-1.23.1v0 opus-1.5.2p0 unzip-6.0p17 xxhash-0.8.2p1
/usr/sbin/pkg_add -aI -Drepair apache-ant-1.10.14 assimp-5.2.5 glfw-3.3.9 jdk-11.0.24.8.1v0 libffi-3.4.6 lmdb-0.9.32 lz4-1.10.0 openal-1.23.1v0 opus-1.5.2p0 unzip-6.0p17 xxhash-0.8.2p1
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/jdk-11
--- +jdk-11.0.24.8.1v0 -------------------
You may wish to add /usr/local/jdk-11/man to /etc/man.conf
>>> Running show-prepare-results in games/lwjgl3 at 1729373973.69
===> games/lwjgl3
===> Building from scratch lwjgl3-3.3.1.1
===> lwjgl3-3.3.1.1 depends on: unzip-* -> unzip-6.0p17
===> lwjgl3-3.3.1.1 depends on: jdk->=11v0,<12v0 -> jdk-11.0.24.8.1v0
===> lwjgl3-3.3.1.1 depends on: apache-ant-* -> apache-ant-1.10.14
===> lwjgl3-3.3.1.1 depends on: gcc->=8,<9 -> gcc-8.4.0p25
===> lwjgl3-3.3.1.1 depends on: g++->=8,<9 -> g++-8.4.0p25
===> lwjgl3-3.3.1.1 depends on: lz4-* -> lz4-1.10.0
===> lwjgl3-3.3.1.1 depends on: openal-* -> openal-1.23.1v0
===> lwjgl3-3.3.1.1 depends on: opus-* -> opus-1.5.2p0
===> lwjgl3-3.3.1.1 depends on: lmdb-* -> lmdb-0.9.32
===> lwjgl3-3.3.1.1 depends on: libffi-* -> libffi-3.4.6
===> lwjgl3-3.3.1.1 depends on: glfw-* -> glfw-3.3.9
===> lwjgl3-3.3.1.1 depends on: assimp-* -> assimp-5.2.5
===> lwjgl3-3.3.1.1 depends on: xxhash-* -> xxhash-0.8.2p1
===> lwjgl3-3.3.1.1 depends on: gtk+3-* -> gtk+3-3.24.43
===> lwjgl3-3.3.1.1 depends on: gcc-libs->=8,<9 -> gcc-libs-8.4.0p25
===> Verifying specs: estdc++>=17 pthread GL X11 Xcursor Xext Xrandr Xxf86vm assimp ffi glfw glib-2.0 gobject-2.0 gtk-3 lmdb lz4 m openal opus pthread xxhash estdc++>=19
===> found estdc++.19.0 pthread.27.1 GL.19.1 X11.18.2 Xcursor.5.0 Xext.13.0 Xrandr.7.1 Xxf86vm.6.0 assimp.2.0 ffi.2.1 glfw.1.1 glib-2.0.4201.12 gobject-2.0.4200.19 gtk-3.2201.0 lmdb.0.0 lz4.3.3 m.10.1 openal.5.0 opus.1.5 xxhash.0.3
apache-ant-1.10.14
assimp-5.2.5
g++-8.4.0p25
gcc-8.4.0p25
gcc-libs-8.4.0p25
glfw-3.3.9
gtk+3-3.24.43
jdk-11.0.24.8.1v0
libffi-3.4.6
lmdb-0.9.32
lz4-1.10.0
openal-1.23.1v0
opus-1.5.2p0
unzip-6.0p17
xxhash-0.8.2p1
(Junk lock released for sparc64-0c at 1729373989.89)
distfiles size=84252348
>>> Running patch in games/lwjgl3 at 1729373989.99
===> games/lwjgl3
===> Checking files for lwjgl3-3.3.1.1
`/usr/ports/distfiles/lwjgl3-maven-20210208.tar.gz' is up to date.
`/usr/ports/distfiles/lwjgl3-3.3.1.1.tar.gz' is up to date.
`/usr/ports/distfiles/kotlin-compiler-1.6.20-M1.zip' is up to date.
>> (SHA256) lwjgl3-maven-20210208.tar.gz: OK
>> (SHA256) lwjgl3-3.3.1.1.tar.gz: OK
>> (SHA256) kotlin-compiler-1.6.20-M1.zip: OK
===> Extracting for lwjgl3-3.3.1.1
mkdir -p /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/libs
unzip -oq -d /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/libs/ /usr/ports/distfiles/kotlin-compiler-1.6.20-M1.zip
tar -C /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/libs -zxf /usr/ports/distfiles/lwjgl3-maven-20210208.tar.gz
===> Patching for lwjgl3-3.3.1.1
===> Compiler link: gcc -> /usr/local/bin/egcc
===> Compiler link: cc -> /usr/local/bin/egcc
===> Compiler link: c++ -> /usr/local/bin/eg++
===> Compiler link: g++ -> /usr/local/bin/eg++
>>> Running configure in games/lwjgl3 at 1729374008.32
===> games/lwjgl3
===> Generating configure for lwjgl3-3.3.1.1
===> Configuring for lwjgl3-3.3.1.1
perl -pi -e 's,/usr/X11R6,/usr/X11R6,g' /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/build.xml
perl -pi -e 's,/usr/local,/usr/local,g' /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/build.xml
touch /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/libs/touch.txt
>>> Running build in games/lwjgl3 at 1729374009.92
===> games/lwjgl3
===> Building for lwjgl3-3.3.1.1
cd /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1 && /usr/bin/env -i JAVA_HOME=/usr/local/jdk-11 PORTSDIR="/usr/ports" LIBTOOL="/usr/bin/libtool" PATH='/usr/obj/ports/lwjgl3-3.3.1.1/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin' PREFIX='/usr/local' LOCALBASE='/usr/local' X11BASE='/usr/X11R6' CFLAGS='-O2 -pipe' TRUEPREFIX='/usr/local' DESTDIR='' HOME='/usr/obj/ports/lwjgl3-3.3.1.1' PICFLAG="-fPIC" BINGRP=bin BINOWN=root BINMODE=755 NONBINMODE=644 DIRMODE=755 INSTALL_COPY=-c INSTALL_STRIP=-s MANGRP=bin MANOWN=root MANMODE=644 BSD_INSTALL_PROGRAM="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -c -s -m 755" BSD_INSTALL_SCRIPT="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -c -m 755" BSD_INSTALL_DATA="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -c -m 644" BSD_INSTALL_MAN="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -c -m 644" BSD_INSTALL_PROGRAM_DIR="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -d -m 755" BSD_INSTALL_SCRIPT_DIR="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -d -m 755" BSD_INSTALL_DATA_DIR="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -d -m 755" BSD_INSTALL_MAN_DIR="/usr/obj/ports/lwjgl3-3.3.1.1/bin/install -d -m 755" /usr/local/bin/ant -buildfile build.xml
Buildfile: /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/build.xml
init:
[mkdir] Created dir: /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/ant
[javac: Custom Ant Tasks] Compiling 2 source files to /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/ant
[javac: Custom Ant Tasks] warning: [options] bootstrap class path not set in conjunction with -source 8
[javac: Custom Ant Tasks] 1 warning
check-dependencies:
-compile-generator:
[Generator] Compiling Kotlin generator...
[mkdir] Created dir: /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/generator
[kotlinc] Compiling [/usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/generator/src/main/kotlin] => [/usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/generator]
[kotlinc] info: kotlinc-jvm 1.6.20-M1 (JRE 11.0.24+8-1)
[kotlinc] info: PERF: generator-java-production, 20 files (10653 lines)
[kotlinc] info: PERF: INIT: Compiler initialized in 15190 ms
[kotlinc] info: PERF: ANALYZE 290074 ms 36.725 loc/s
[kotlinc] info: PERF: GENERATE 115763 ms 92.024 loc/s
[kotlinc] info: PERF: GC time for G1 Young Generation is 1881 ms, 23 collections
[kotlinc] info: PERF: GC time for G1 Old Generation is 0 ms, 0 collections
[kotlinc] info: PERF: JIT time is 1070386 ms
[kotlinc] info: PERF: Find Java class performed 17 times, total time 113 ms
[kotlinc] info: PERF: Type info performed 32115 times, total time 213345 ms
[kotlinc] info: PERF: Call resolve performed 19034 times, total time 173562 ms
[kotlinc] info: PERF: Binary class from Kotlin file performed 356 times, total time 875 ms
[touch] Creating /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/generator/touch.txt
[javac: Generator Tools] Compiling 6 source files to /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/generator
[javac: Generator Tools] warning: [options] bootstrap class path not set in conjunction with -source 8
[javac: Generator Tools] 1 warning
compile-templates:
[Templates] Compiling Kotlin templates. This will take 1-2 minutes...
[mkdir] Created dir: /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/templates
[kotlinc] Compiling [/usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/jni, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/libc, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/libffi, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/linux, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/macos, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/openbsd, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/freebsd, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/templates, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin/core/windows, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/core/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openal/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openxr/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/meow/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/par/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/stb/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/egl/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/vma/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/bgfx/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/jawt/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/sse/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openvr/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/nuklear/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/lz4/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/rpmalloc/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/opengles/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/tinyfd/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/meshoptimizer/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/opengl/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/assimp/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/odbc/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/xxhash/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/spvc/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/lmdb/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/llvm/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/nanovg/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/remotery/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/nfd/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/glfw/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/opencl/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/yoga/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/cuda/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/tinyexr/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/shaderc/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/vulkan/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/jemalloc/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/tootle/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/libdivide/src/templates/kotlin, /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/opus/src/templates/kotlin] => [/usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/bin/classes/templates]
[kotlinc] info: kotlinc-jvm 1.6.20-M1 (JRE 11.0.24+8-1)
[kotlinc] ERROR: Exception while analyzing expression at (11,12) in /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openxr/src/templates/kotlin/openxr/templates/XR10.kt
[kotlinc]
[kotlinc] Attachments:
[kotlinc] expression.kt
[kotlinc] "XR10".nativeClass(Module.OPENXR, "XR10", prefix = "XR", binding = XR_BINDING_INSTANCE) {
[kotlinc] documentation =
[kotlinc] """
[kotlinc] The core OpenXR 1.0 functionality.
[kotlinc] """
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrResult - Result codes
[kotlinc]
[kotlinc]
Description
[kotlinc] All return codes in the API are reported via {@code XrResult} return values.
[kotlinc]
[kotlinc] Some common suffixes shared across many of the return codes are defined below:
[kotlinc]
[kotlinc]
[kotlinc] - {@code _INVALID}: The specified handle, atom or value is formatted incorrectly, or the specified handle was never created or has been destroyed.
[kotlinc] - {@code _UNSUPPORTED}: The specified handle, atom, enumerant or value is formatted correctly but cannot be used for the lifetime of this function?s parent handle.
[kotlinc] - {@code _UNAVAILABLE}: The specified handle, atom, enumerant or value is supported by this function?s parent handle but not at this moment.
[kotlinc]
[kotlinc]
[kotlinc] Success Codes
[kotlinc]
[kotlinc] Enum | Description |
[kotlinc]
[kotlinc] #SUCCESS | Function successfully completed. |
[kotlinc] #TIMEOUT_EXPIRED | The specified timeout time occurred before the operation could complete. |
[kotlinc] #SESSION_LOSS_PENDING | The session will be lost soon. |
[kotlinc] #EVENT_UNAVAILABLE | No event was available. |
[kotlinc] #SPACE_BOUNDS_UNAVAILABLE | The space?s bounds are not known at the moment. |
[kotlinc] #SESSION_NOT_FOCUSED | The session is not in the focused state. |
[kotlinc] #FRAME_DISCARDED | A frame has been discarded from composition. |
[kotlinc] #RENDER_MODEL_UNAVAILABLE_FB | The model is unavailable. (Added by the {@link FBRenderModel XR_FB_render_model} extension) |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] Error Codes
[kotlinc]
[kotlinc] Enum | Description |
[kotlinc]
[kotlinc] #ERROR_VALIDATION_FAILURE | The function usage was invalid in some way. |
[kotlinc] #ERROR_RUNTIME_FAILURE | The runtime failed to handle the function in an unexpected way that is not covered by another error result. |
[kotlinc] #ERROR_OUT_OF_MEMORY | A memory allocation has failed. |
[kotlinc] #ERROR_API_VERSION_UNSUPPORTED | The runtime does not support the requested API version. |
[kotlinc] #ERROR_INITIALIZATION_FAILED | Initialization of object could not be completed. |
[kotlinc] #ERROR_FUNCTION_UNSUPPORTED | The requested function was not found or is otherwise unsupported. |
[kotlinc] #ERROR_FEATURE_UNSUPPORTED | The requested feature is not supported. |
[kotlinc] #ERROR_EXTENSION_NOT_PRESENT | A requested extension is not supported. |
[kotlinc] #ERROR_LIMIT_REACHED | The runtime supports no more of the requested resource. |
[kotlinc] #ERROR_SIZE_INSUFFICIENT | The supplied size was smaller than required. |
[kotlinc] #ERROR_HANDLE_INVALID | A supplied object handle was invalid. |
[kotlinc] #ERROR_INSTANCE_LOST | The {@code XrInstance} was lost or could not be found. It will need to be destroyed and optionally recreated. |
[kotlinc] #ERROR_SESSION_RUNNING | The session is already running. |
[kotlinc] #ERROR_SESSION_NOT_RUNNING | The session is not yet running. |
[kotlinc] #ERROR_SESSION_LOST | The {@code XrSession} was lost. It will need to be destroyed and optionally recreated. |
[kotlinc] #ERROR_SYSTEM_INVALID | The provided {@code XrSystemId} was invalid. |
[kotlinc] #ERROR_PATH_INVALID | The provided {@code XrPath} was not valid. |
[kotlinc] #ERROR_PATH_COUNT_EXCEEDED | The maximum number of supported semantic paths has been reached. |
[kotlinc] #ERROR_PATH_FORMAT_INVALID | The semantic path character format is invalid. |
[kotlinc] #ERROR_PATH_UNSUPPORTED | The semantic path is unsupported. |
[kotlinc] #ERROR_LAYER_INVALID | The layer was NULL or otherwise invalid. |
[kotlinc] #ERROR_LAYER_LIMIT_EXCEEDED | The number of specified layers is greater than the supported number. |
[kotlinc] #ERROR_SWAPCHAIN_RECT_INVALID | The image rect was negatively sized or otherwise invalid. |
[kotlinc] #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED | The image format is not supported by the runtime or platform. |
[kotlinc] #ERROR_ACTION_TYPE_MISMATCH | The API used to retrieve an action?s state does not match the action?s type. |
[kotlinc] #ERROR_SESSION_NOT_READY | The session is not in the ready state. |
[kotlinc] #ERROR_SESSION_NOT_STOPPING | The session is not in the stopping state. |
[kotlinc] #ERROR_TIME_INVALID | The provided {@code XrTime} was zero, negative, or out of range. |
[kotlinc] #ERROR_REFERENCE_SPACE_UNSUPPORTED | The specified reference space is not supported by the runtime or system. |
[kotlinc] #ERROR_FILE_ACCESS_ERROR | The file could not be accessed. |
[kotlinc] #ERROR_FILE_CONTENTS_INVALID | The file?s contents were invalid. |
[kotlinc] #ERROR_FORM_FACTOR_UNSUPPORTED | The specified form factor is not supported by the current runtime or platform. |
[kotlinc] #ERROR_FORM_FACTOR_UNAVAILABLE | The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off. |
[kotlinc] #ERROR_API_LAYER_NOT_PRESENT | A requested API layer is not present or could not be loaded. |
[kotlinc] #ERROR_CALL_ORDER_INVALID | The call was made without having made a previously required call. |
[kotlinc] #ERROR_GRAPHICS_DEVICE_INVALID | The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements. |
[kotlinc] #ERROR_POSE_INVALID | The supplied pose was invalid with respect to the requirements. |
[kotlinc] #ERROR_INDEX_OUT_OF_RANGE | The supplied index was outside the range of valid indices. |
[kotlinc] #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED | The specified view configuration type is not supported by the runtime or platform. |
[kotlinc] #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED | The specified environment blend mode is not supported by the runtime or platform. |
[kotlinc] #ERROR_NAME_DUPLICATED | The name provided was a duplicate of an already-existing resource. |
[kotlinc] #ERROR_NAME_INVALID | The name provided was invalid. |
[kotlinc] #ERROR_ACTIONSET_NOT_ATTACHED | A referenced action set is not attached to the session. |
[kotlinc] #ERROR_ACTIONSETS_ALREADY_ATTACHED | The session already has attached action sets. |
[kotlinc] #ERROR_LOCALIZED_NAME_DUPLICATED | The localized name provided was a duplicate of an already-existing resource. |
[kotlinc] #ERROR_LOCALIZED_NAME_INVALID | The localized name provided was invalid. |
[kotlinc] #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING | The {@code xrGetGraphicsRequirements}* call was not made before calling {@code xrCreateSession}. |
[kotlinc] #ERROR_RUNTIME_UNAVAILABLE | The loader was unable to find or load a runtime. |
[kotlinc] #ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT | Spatial anchor could not be created at that location. (Added by the {@link MSFTSpatialAnchor XR_MSFT_spatial_anchor} extension) |
[kotlinc] #ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT | The secondary view configuration was not enabled when creating the session. (Added by the {@link MSFTSecondaryViewConfiguration XR_MSFT_secondary_view_configuration} extension) |
[kotlinc] #ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT | The controller model key is invalid. (Added by the {@link MSFTControllerModel XR_MSFT_controller_model} extension) |
[kotlinc] #ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT | The reprojection mode is not supported. (Added by the {@link MSFTCompositionLayerReprojection XR_MSFT_composition_layer_reprojection} extension) |
[kotlinc] #ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT | Compute new scene not completed. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPONENT_ID_INVALID_MSFT | Scene component id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT | Scene component type mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT | Scene mesh buffer id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT | Scene compute feature incompatible. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT | Scene compute consistency mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB | The display refresh rate is not supported by the platform. (Added by the {@link FBDisplayRefreshRate XR_FB_display_refresh_rate} extension) |
[kotlinc] #ERROR_COLOR_SPACE_UNSUPPORTED_FB | The color space is not supported by the runtime. (Added by the {@link FBColorSpace XR_FB_color_space} extension) |
[kotlinc] #ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB | The object state is unexpected for the issued command. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB | Trying to create an MR feature when one was already created and only one instance is allowed. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB | Requested functionality requires a feature to be created first. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_NOT_PERMITTED_PASSTHROUGH_FB | Requested functionality is not permitted - application is not allowed to perform the requested operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB | There weren?t sufficient resources available to perform an operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_UNKNOWN_PASSTHROUGH_FB | Unknown Passthrough error (no further details provided). (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_RENDER_MODEL_KEY_INVALID_FB | The model key is invalid. (Added by the {@link FBRenderModel XR_FB_render_model} extension) |
[kotlinc] #ERROR_MARKER_NOT_TRACKED_VARJO | Marker tracking is disabled or the specified marker is not currently tracked. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension) |
[kotlinc] #ERROR_MARKER_ID_INVALID_VARJO | The specified marker ID is not valid. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension) |
[kotlinc] #ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT | A spatial anchor was not found associated with the spatial anchor name provided (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension) |
[kotlinc] #ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT | The spatial anchor name provided was not valid (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension) |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #ResultToString()
[kotlinc] """,
[kotlinc]
[kotlinc] "SUCCESS".."0",
[kotlinc] "TIMEOUT_EXPIRED".."1",
[kotlinc] "SESSION_LOSS_PENDING".."3",
[kotlinc] "EVENT_UNAVAILABLE".."4",
[kotlinc] "SPACE_BOUNDS_UNAVAILABLE".."7",
[kotlinc] "SESSION_NOT_FOCUSED".."8",
[kotlinc] "FRAME_DISCARDED".."9",
[kotlinc] "ERROR_VALIDATION_FAILURE".."-1",
[kotlinc] "ERROR_RUNTIME_FAILURE".."-2",
[kotlinc] "ERROR_OUT_OF_MEMORY".."-3",
[kotlinc] "ERROR_API_VERSION_UNSUPPORTED".."-4",
[kotlinc] "ERROR_INITIALIZATION_FAILED".."-6",
[kotlinc] "ERROR_FUNCTION_UNSUPPORTED".."-7",
[kotlinc] "ERROR_FEATURE_UNSUPPORTED".."-8",
[kotlinc] "ERROR_EXTENSION_NOT_PRESENT".."-9",
[kotlinc] "ERROR_LIMIT_REACHED".."-10",
[kotlinc] "ERROR_SIZE_INSUFFICIENT".."-11",
[kotlinc] "ERROR_HANDLE_INVALID".."-12",
[kotlinc] "ERROR_INSTANCE_LOST".."-13",
[kotlinc] "ERROR_SESSION_RUNNING".."-14",
[kotlinc] "ERROR_SESSION_NOT_RUNNING".."-16",
[kotlinc] "ERROR_SESSION_LOST".."-17",
[kotlinc] "ERROR_SYSTEM_INVALID".."-18",
[kotlinc] "ERROR_PATH_INVALID".."-19",
[kotlinc] "ERROR_PATH_COUNT_EXCEEDED".."-20",
[kotlinc] "ERROR_PATH_FORMAT_INVALID".."-21",
[kotlinc] "ERROR_PATH_UNSUPPORTED".."-22",
[kotlinc] "ERROR_LAYER_INVALID".."-23",
[kotlinc] "ERROR_LAYER_LIMIT_EXCEEDED".."-24",
[kotlinc] "ERROR_SWAPCHAIN_RECT_INVALID".."-25",
[kotlinc] "ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED".."-26",
[kotlinc] "ERROR_ACTION_TYPE_MISMATCH".."-27",
[kotlinc] "ERROR_SESSION_NOT_READY".."-28",
[kotlinc] "ERROR_SESSION_NOT_STOPPING".."-29",
[kotlinc] "ERROR_TIME_INVALID".."-30",
[kotlinc] "ERROR_REFERENCE_SPACE_UNSUPPORTED".."-31",
[kotlinc] "ERROR_FILE_ACCESS_ERROR".."-32",
[kotlinc] "ERROR_FILE_CONTENTS_INVALID".."-33",
[kotlinc] "ERROR_FORM_FACTOR_UNSUPPORTED".."-34",
[kotlinc] "ERROR_FORM_FACTOR_UNAVAILABLE".."-35",
[kotlinc] "ERROR_API_LAYER_NOT_PRESENT".."-36",
[kotlinc] "ERROR_CALL_ORDER_INVALID".."-37",
[kotlinc] "ERROR_GRAPHICS_DEVICE_INVALID".."-38",
[kotlinc] "ERROR_POSE_INVALID".."-39",
[kotlinc] "ERROR_INDEX_OUT_OF_RANGE".."-40",
[kotlinc] "ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED".."-41",
[kotlinc] "ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED".."-42",
[kotlinc] "ERROR_NAME_DUPLICATED".."-44",
[kotlinc] "ERROR_NAME_INVALID".."-45",
[kotlinc] "ERROR_ACTIONSET_NOT_ATTACHED".."-46",
[kotlinc] "ERROR_ACTIONSETS_ALREADY_ATTACHED".."-47",
[kotlinc] "ERROR_LOCALIZED_NAME_DUPLICATED".."-48",
[kotlinc] "ERROR_LOCALIZED_NAME_INVALID".."-49",
[kotlinc] "ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING".."-50",
[kotlinc] "ERROR_RUNTIME_UNAVAILABLE".."-51"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrStructureType - Values for type members of structs
[kotlinc]
[kotlinc] Description
[kotlinc] Most structures containing {@code type} members have a value of {@code type} matching the type of the structure, as described more fully in Valid Usage for Structure Types.
[kotlinc]
[kotlinc] Note that all extension enums begin at the extension enum base of 110
(base 10). Each extension is assigned a block of 1000 enums, starting at the enum base and arranged by the extension?s index.
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, ##XrActionSetCreateInfo, ##XrActionSpaceCreateInfo, ##XrActionStateBoolean, ##XrActionStateFloat, ##XrActionStateGetInfo, ##XrActionStatePose, ##XrActionStateVector2f, ##XrActionsSyncInfo, ##XrApiLayerProperties, ##XrBaseInStructure, ##XrBaseOutStructure, ##XrBindingModificationBaseHeaderKHR, ##XrBindingModificationsKHR, ##XrBoundSourcesForActionEnumerateInfo, ##XrCompositionLayerAlphaBlendFB, ##XrCompositionLayerBaseHeader, ##XrCompositionLayerColorScaleBiasKHR, ##XrCompositionLayerCubeKHR, ##XrCompositionLayerCylinderKHR, ##XrCompositionLayerDepthInfoKHR, ##XrCompositionLayerDepthTestVARJO, ##XrCompositionLayerEquirect2KHR, ##XrCompositionLayerEquirectKHR, ##XrCompositionLayerImageLayoutFB, ##XrCompositionLayerPassthroughFB, ##XrCompositionLayerProjection, ##XrCompositionLayerProjectionView, ##XrCompositionLayerQuad, ##XrCompositionLayerReprojectionInfoMSFT, ##XrCompositionLayerReprojectionPlaneOverrideMSFT, ##XrCompositionLayerSecureContentFB, ##XrCompositionLayerSpaceWarpInfoFB, ##XrControllerModelKeyStateMSFT, ##XrControllerModelNodePropertiesMSFT, ##XrControllerModelNodeStateMSFT, ##XrControllerModelPropertiesMSFT, ##XrControllerModelStateMSFT, ##XrDebugUtilsLabelEXT, ##XrDebugUtilsMessengerCallbackDataEXT, ##XrDebugUtilsMessengerCreateInfoEXT, ##XrDebugUtilsObjectNameInfoEXT, ##XrDigitalLensControlALMALENCE, ##XrEventDataBaseHeader, ##XrEventDataBuffer, ##XrEventDataDisplayRefreshRateChangedFB, ##XrEventDataEventsLost, ##XrEventDataInstanceLossPending, ##XrEventDataInteractionProfileChanged, ##XrEventDataMainSessionVisibilityChangedEXTX, ##XrEventDataMarkerTrackingUpdateVARJO, ##XrEventDataPassthroughStateChangedFB, ##XrEventDataPerfSettingsEXT, ##XrEventDataReferenceSpaceChangePending, ##XrEventDataSessionStateChanged, ##XrEventDataVisibilityMaskChangedKHR, ##XrEventDataViveTrackerConnectedHTCX, ##XrExtensionProperties, ##XrEyeGazeSampleTimeEXT, ##XrFacialExpressionsHTC, ##XrFacialTrackerCreateInfoHTC, ##XrFoveatedViewConfigurationViewVARJO, ##XrFoveationLevelProfileCreateInfoFB, ##XrFoveationProfileCreateInfoFB, ##XrFrameBeginInfo, ##XrFrameEndInfo, ##XrFrameState, ##XrFrameWaitInfo, ##XrGeometryInstanceCreateInfoFB, ##XrGeometryInstanceTransformFB, ##XrGraphicsBindingEGLMNDX, ##XrGraphicsBindingOpenGLWaylandKHR, ##XrGraphicsBindingOpenGLWin32KHR, ##XrGraphicsBindingOpenGLXcbKHR, ##XrGraphicsBindingOpenGLXlibKHR, ##XrGraphicsBindingVulkanKHR, ##XrGraphicsRequirementsOpenGLESKHR, ##XrGraphicsRequirementsOpenGLKHR, ##XrGraphicsRequirementsVulkanKHR, ##XrHandJointLocationsEXT, ##XrHandJointVelocitiesEXT, ##XrHandJointsLocateInfoEXT, ##XrHandJointsMotionRangeInfoEXT, ##XrHandMeshMSFT, ##XrHandMeshSpaceCreateInfoMSFT, ##XrHandMeshUpdateInfoMSFT, ##XrHandPoseTypeInfoMSFT, ##XrHandTrackerCreateInfoEXT, ##XrHandTrackingAimStateFB, ##XrHandTrackingCapsulesStateFB, ##XrHandTrackingMeshFB, ##XrHandTrackingScaleFB, ##XrHapticActionInfo, ##XrHapticBaseHeader, ##XrHapticVibration, ##XrHolographicWindowAttachmentMSFT, ##XrInputSourceLocalizedNameGetInfo, ##XrInstanceCreateInfo, ##XrInstanceProperties, ##XrInteractionProfileAnalogThresholdVALVE, ##XrInteractionProfileState, ##XrInteractionProfileSuggestedBinding, ##XrKeyboardSpaceCreateInfoFB, ##XrKeyboardTrackingQueryFB, ##XrLoaderInitInfoBaseHeaderKHR, ##XrMarkerSpaceCreateInfoVARJO, ##XrNewSceneComputeInfoMSFT, ##XrPassthroughColorMapMonoToMonoFB, ##XrPassthroughColorMapMonoToRgbaFB, ##XrPassthroughCreateInfoFB, ##XrPassthroughKeyboardHandsIntensityFB, ##XrPassthroughLayerCreateInfoFB, ##XrPassthroughStyleFB, ##XrReferenceSpaceCreateInfo, ##XrRenderModelBufferFB, ##XrRenderModelLoadInfoFB, ##XrRenderModelPathInfoFB, ##XrRenderModelPropertiesFB, ##XrSceneComponentLocationsMSFT, ##XrSceneComponentParentFilterInfoMSFT, ##XrSceneComponentsGetInfoMSFT, ##XrSceneComponentsLocateInfoMSFT, ##XrSceneComponentsMSFT, ##XrSceneCreateInfoMSFT, ##XrSceneDeserializeInfoMSFT, ##XrSceneMeshBuffersGetInfoMSFT, ##XrSceneMeshBuffersMSFT, ##XrSceneMeshIndicesUint16MSFT, ##XrSceneMeshIndicesUint32MSFT, ##XrSceneMeshVertexBufferMSFT, ##XrSceneMeshesMSFT, ##XrSceneObjectTypesFilterInfoMSFT, ##XrSceneObjectsMSFT, ##XrSceneObserverCreateInfoMSFT, ##XrScenePlaneAlignmentFilterInfoMSFT, ##XrScenePlanesMSFT, ##XrSecondaryViewConfigurationFrameEndInfoMSFT, ##XrSecondaryViewConfigurationFrameStateMSFT, ##XrSecondaryViewConfigurationLayerInfoMSFT, ##XrSecondaryViewConfigurationSessionBeginInfoMSFT, ##XrSecondaryViewConfigurationStateMSFT, ##XrSecondaryViewConfigurationSwapchainCreateInfoMSFT, ##XrSerializedSceneFragmentDataGetInfoMSFT, ##XrSessionActionSetsAttachInfo, ##XrSessionBeginInfo, ##XrSessionCreateInfo, ##XrSessionCreateInfoOverlayEXTX, ##XrSpaceLocation, ##XrSpaceVelocity, ##XrSpatialAnchorCreateInfoMSFT, ##XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT, ##XrSpatialAnchorPersistenceInfoMSFT, ##XrSpatialAnchorSpaceCreateInfoMSFT, ##XrSpatialGraphNodeSpaceCreateInfoMSFT, ##XrSwapchainCreateInfo, ##XrSwapchainCreateInfoFoveationFB, ##XrSwapchainImageAcquireInfo, ##XrSwapchainImageBaseHeader, ##XrSwapchainImageFoveationVulkanFB, ##XrSwapchainImageOpenGLESKHR, ##XrSwapchainImageOpenGLKHR, ##XrSwapchainImageReleaseInfo, ##XrSwapchainImageVulkanKHR, ##XrSwapchainImageWaitInfo, ##XrSwapchainStateBaseHeaderFB, ##XrSwapchainStateFoveationFB, ##XrSwapchainStateSamplerOpenGLESFB, ##XrSwapchainStateSamplerVulkanFB, ##XrSystemColorSpacePropertiesFB, ##XrSystemEyeGazeInteractionPropertiesEXT, ##XrSystemFacialTrackingPropertiesHTC, ##XrSystemFoveatedRenderingPropertiesVARJO, ##XrSystemGetInfo, ##XrSystemHandTrackingMeshPropertiesMSFT, ##XrSystemHandTrackingPropertiesEXT, ##XrSystemKeyboardTrackingPropertiesFB, ##XrSystemMarkerTrackingPropertiesVARJO, ##XrSystemPassthroughPropertiesFB, ##XrSystemProperties, ##XrSystemRenderModelPropertiesFB, ##XrSystemSpaceWarpPropertiesFB, ##XrTriangleMeshCreateInfoFB, ##XrView, ##XrViewConfigurationDepthRangeEXT, ##XrViewConfigurationProperties, ##XrViewConfigurationView, ##XrViewConfigurationViewFovEPIC, ##XrViewLocateFoveatedRenderingVARJO, ##XrViewLocateInfo, ##XrViewState, ##XrVisibilityMaskKHR, ##XrVisualMeshComputeLodInfoMSFT, ##XrViveTrackerPathsHTCX, ##XrVulkanDeviceCreateInfoKHR, ##XrVulkanGraphicsDeviceGetInfoKHR, ##XrVulkanInstanceCreateInfoKHR, ##XrVulkanSwapchainFormatListCreateInfoKHR, #StructureTypeToString()
[kotlinc] """,
[kotlinc]
[kotlinc] "TYPE_UNKNOWN".."0",
[kotlinc] "TYPE_API_LAYER_PROPERTIES".."1",
[kotlinc] "TYPE_EXTENSION_PROPERTIES".."2",
[kotlinc] "TYPE_INSTANCE_CREATE_INFO".."3",
[kotlinc] "TYPE_SYSTEM_GET_INFO".."4",
[kotlinc] "TYPE_SYSTEM_PROPERTIES".."5",
[kotlinc] "TYPE_VIEW_LOCATE_INFO".."6",
[kotlinc] "TYPE_VIEW".."7",
[kotlinc] "TYPE_SESSION_CREATE_INFO".."8",
[kotlinc] "TYPE_SWAPCHAIN_CREATE_INFO".."9",
[kotlinc] "TYPE_SESSION_BEGIN_INFO".."10",
[kotlinc] "TYPE_VIEW_STATE".."11",
[kotlinc] "TYPE_FRAME_END_INFO".."12",
[kotlinc] "TYPE_HAPTIC_VIBRATION".."13",
[kotlinc] "TYPE_EVENT_DATA_BUFFER".."16",
[kotlinc] "TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING".."17",
[kotlinc] "TYPE_EVENT_DATA_SESSION_STATE_CHANGED".."18",
[kotlinc] "TYPE_ACTION_STATE_BOOLEAN".."23",
[kotlinc] "TYPE_ACTION_STATE_FLOAT".."24",
[kotlinc] "TYPE_ACTION_STATE_VECTOR2F".."25",
[kotlinc] "TYPE_ACTION_STATE_POSE".."27",
[kotlinc] "TYPE_ACTION_SET_CREATE_INFO".."28",
[kotlinc] "TYPE_ACTION_CREATE_INFO".."29",
[kotlinc] "TYPE_INSTANCE_PROPERTIES".."32",
[kotlinc] "TYPE_FRAME_WAIT_INFO".."33",
[kotlinc] "TYPE_COMPOSITION_LAYER_PROJECTION".."35",
[kotlinc] "TYPE_COMPOSITION_LAYER_QUAD".."36",
[kotlinc] "TYPE_REFERENCE_SPACE_CREATE_INFO".."37",
[kotlinc] "TYPE_ACTION_SPACE_CREATE_INFO".."38",
[kotlinc] "TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING".."40",
[kotlinc] "TYPE_VIEW_CONFIGURATION_VIEW".."41",
[kotlinc] "TYPE_SPACE_LOCATION".."42",
[kotlinc] "TYPE_SPACE_VELOCITY".."43",
[kotlinc] "TYPE_FRAME_STATE".."44",
[kotlinc] "TYPE_VIEW_CONFIGURATION_PROPERTIES".."45",
[kotlinc] "TYPE_FRAME_BEGIN_INFO".."46",
[kotlinc] "TYPE_COMPOSITION_LAYER_PROJECTION_VIEW".."48",
[kotlinc] "TYPE_EVENT_DATA_EVENTS_LOST".."49",
[kotlinc] "TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING".."51",
[kotlinc] "TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED".."52",
[kotlinc] "TYPE_INTERACTION_PROFILE_STATE".."53",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO".."55",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_WAIT_INFO".."56",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO".."57",
[kotlinc] "TYPE_ACTION_STATE_GET_INFO".."58",
[kotlinc] "TYPE_HAPTIC_ACTION_INFO".."59",
[kotlinc] "TYPE_SESSION_ACTION_SETS_ATTACH_INFO".."60",
[kotlinc] "TYPE_ACTIONS_SYNC_INFO".."61",
[kotlinc] "TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO".."62",
[kotlinc] "TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO".."63"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrFormFactor - Supported form factors
[kotlinc]
[kotlinc] Description
[kotlinc] The predefined form factors which may be supported by OpenXR runtimes are:
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #FORM_FACTOR_HEAD_MOUNTED_DISPLAY. The tracked display is attached to the user?s head. The user cannot touch the display itself. A VR headset would be an example of this form factor.
[kotlinc] - #FORM_FACTOR_HANDHELD_DISPLAY. The tracked display is held in the user?s hand, independent from the user?s head. The user may be able to touch the display, allowing for screen-space UI. A mobile phone running an AR experience using pass-through video would be an example of this form factor.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #NULL_SYSTEM_ID, ##XrSystemGetInfo, #GetSystem()
[kotlinc] """,
[kotlinc]
[kotlinc] "FORM_FACTOR_HEAD_MOUNTED_DISPLAY".."1",
[kotlinc] "FORM_FACTOR_HANDHELD_DISPLAY".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrViewConfigurationType - Supported view configuration type
[kotlinc]
[kotlinc] Description
[kotlinc] The application selects its primary view configuration type when calling #BeginSession(), and that configuration remains constant for the lifetime of the session, until #EndSession() is called.
[kotlinc]
[kotlinc] The number of views and the semantic meaning of each view index within a given view configuration is well-defined, specified below for all core view configurations. The predefined primary view configuration types are:
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #VIEW_CONFIGURATION_TYPE_PRIMARY_MONO. One view representing the form factor?s one primary display. For example, an AR phone?s screen. This configuration requires one element in ##XrViewConfigurationProperties and one projection in each ##XrCompositionLayerProjection layer.
[kotlinc] - #VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO. Two views representing the form factor?s two primary displays, which map to a left-eye and right-eye view. This configuration requires two views in ##XrViewConfigurationProperties and two views in each ##XrCompositionLayerProjection layer. View index 0 must represent the left eye and view index 1 must represent the right eye.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataVisibilityMaskChangedKHR, ##XrSecondaryViewConfigurationLayerInfoMSFT, ##XrSecondaryViewConfigurationSessionBeginInfoMSFT, ##XrSecondaryViewConfigurationStateMSFT, ##XrSecondaryViewConfigurationSwapchainCreateInfoMSFT, ##XrSessionBeginInfo, ##XrViewConfigurationProperties, ##XrViewLocateInfo, #EnumerateEnvironmentBlendModes(), #EnumerateReprojectionModesMSFT(), #EnumerateViewConfigurationViews(), #EnumerateViewConfigurations(), #GetViewConfigurationProperties(), #GetVisibilityMaskKHR()
[kotlinc] """,
[kotlinc]
[kotlinc] "VIEW_CONFIGURATION_TYPE_PRIMARY_MONO".."1",
[kotlinc] "VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrEnvironmentBlendMode - Environment blend modes
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #ENVIRONMENT_BLEND_MODE_OPAQUE. The composition layers will be displayed with no view of the physical world behind them. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel. This is the typical mode for VR experiences, although this mode can also be supported on devices that support video passthrough.
[kotlinc] - #ENVIRONMENT_BLEND_MODE_ADDITIVE. The composition layers will be additively blended with the real world behind the display. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel during the additive blending. This will cause black composited pixels to appear transparent. This is the typical mode for an AR experience on a see-through headset with an additive display, although this mode can also be supported on devices that support video passthrough.
[kotlinc] - #ENVIRONMENT_BLEND_MODE_ALPHA_BLEND. The composition layers will be alpha-blended with the real world behind the display. The composited image will be interpreted as an RGBA image, with the composited alpha channel determining each pixel?s level of blending with the real world behind the display. This is the typical mode for an AR experience on a phone or headset that supports video passthrough.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameEndInfo, ##XrSecondaryViewConfigurationLayerInfoMSFT, #EnumerateEnvironmentBlendModes()
[kotlinc] """,
[kotlinc]
[kotlinc] "ENVIRONMENT_BLEND_MODE_OPAQUE".."1",
[kotlinc] "ENVIRONMENT_BLEND_MODE_ADDITIVE".."2",
[kotlinc] "ENVIRONMENT_BLEND_MODE_ALPHA_BLEND".."3"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSpaceVelocityFlagBits",
[kotlinc]
[kotlinc] "SPACE_VELOCITY_LINEAR_VALID_BIT".enum(0x00000001),
[kotlinc] "SPACE_VELOCITY_ANGULAR_VALID_BIT".enum(0x00000002)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrReferenceSpaceType - Reference space types
[kotlinc]
[kotlinc] Description
[kotlinc] Available reference space types are indicated by #EnumerateReferenceSpaces(). Note that other spaces can be created as well, such as pose action spaces created by #CreateActionSpace(), which are not enumerated by that API.
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_VIEW. The {@code VIEW} space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user?s eye orientation, and is not gravity-aligned.
[kotlinc] {@code VIEW} space is primarily useful when projecting from the user?s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in {@code VIEW} space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call #LocateViews() instead of using this space.
[kotlinc]
[kotlinc] Runtimes must support this reference space.
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_LOCAL. The {@code LOCAL} reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at application launch or some other calibrated zero position.
[kotlinc] {@code LOCAL} space is useful when an application needs to render seated-scale content that is not positioned relative to the physical floor.
[kotlinc]
[kotlinc] When a user needs to recenter {@code LOCAL} space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new {@code LOCAL} space. When such a recentering occurs, the runtime must queue the ##XrEventDataReferenceSpaceChangePending event, with the recentered {@code LOCAL} space origin only taking effect for #LocateSpace() or #LocateViews() calls whose {@code XrTime} parameter is greater than or equal to the {@code changeTime} provided in that event.
[kotlinc]
[kotlinc] When views, controllers or other spaces experience tracking loss relative to the {@code LOCAL} space, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT and #VIEW_STATE_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT and #VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the {@code LOCAL} space?s original origin.
[kotlinc]
[kotlinc] Runtimes must support this reference space.
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_STAGE. The {@code STAGE} reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the {@code STAGE} reference space if the user has not yet defined one within the runtime-specific UI. Applications can use #GetReferenceSpaceBoundsRect() to determine the extents of the {@code STAGE} reference space?s XZ bounds rectangle, if defined.
[kotlinc] {@code STAGE} space is useful when an application needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor.
[kotlinc]
[kotlinc] When the user redefines the origin or bounds of the current {@code STAGE} space, or the runtime otherwise switches to a new {@code STAGE} definition, the runtime must queue the ##XrEventDataReferenceSpaceChangePending event, with the new {@code STAGE} space origin only taking effect for #LocateSpace() or #LocateViews() calls whose {@code XrTime} parameter is greater than or equal to the {@code changeTime} provided in that event.
[kotlinc]
[kotlinc] When views, controllers or other spaces experience tracking loss relative to the {@code STAGE} space, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT and #VIEW_STATE_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT and #VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the {@code STAGE} space?s original origin.
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataReferenceSpaceChangePending, ##XrReferenceSpaceCreateInfo, #EnumerateReferenceSpaces(), #GetReferenceSpaceBoundsRect()
[kotlinc] """,
[kotlinc]
[kotlinc] "REFERENCE_SPACE_TYPE_VIEW".."1",
[kotlinc] "REFERENCE_SPACE_TYPE_LOCAL".."2",
[kotlinc] "REFERENCE_SPACE_TYPE_STAGE".."3"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSpaceLocationFlagBits",
[kotlinc]
[kotlinc] "SPACE_LOCATION_ORIENTATION_VALID_BIT".enum(0x00000001),
[kotlinc] "SPACE_LOCATION_POSITION_VALID_BIT".enum(0x00000002),
[kotlinc] "SPACE_LOCATION_ORIENTATION_TRACKED_BIT".enum(0x00000004),
[kotlinc] "SPACE_LOCATION_POSITION_TRACKED_BIT".enum(0x00000008)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSwapchainCreateFlagBits",
[kotlinc]
[kotlinc] "SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT".enum(0x00000001),
[kotlinc] "SWAPCHAIN_CREATE_STATIC_IMAGE_BIT".enum(0x00000002)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSwapchainUsageFlagBits",
[kotlinc]
[kotlinc] "SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT".enum(0x00000001),
[kotlinc] "SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT".enum(0x00000002),
[kotlinc] "SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT".enum(0x00000004),
[kotlinc] "SWAPCHAIN_USAGE_TRANSFER_SRC_BIT".enum(0x00000008),
[kotlinc] "SWAPCHAIN_USAGE_TRANSFER_DST_BIT".enum(0x00000010),
[kotlinc] "SWAPCHAIN_USAGE_SAMPLED_BIT".enum(0x00000020),
[kotlinc] "SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT".enum(0x00000040)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrCompositionLayerFlagBits",
[kotlinc]
[kotlinc] "COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT".enum(0x00000001),
[kotlinc] "COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT".enum(0x00000002),
[kotlinc] "COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT".enum(0x00000004)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrViewStateFlagBits",
[kotlinc]
[kotlinc] "VIEW_STATE_ORIENTATION_VALID_BIT".enum(0x00000001),
[kotlinc] "VIEW_STATE_POSITION_VALID_BIT".enum(0x00000002),
[kotlinc] "VIEW_STATE_ORIENTATION_TRACKED_BIT".enum(0x00000004),
[kotlinc] "VIEW_STATE_POSITION_TRACKED_BIT".enum(0x00000008)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrActionType - XrAction type
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #ACTION_TYPE_BOOLEAN_INPUT. The action can be passed to #GetActionStateBoolean() to retrieve a boolean value.
[kotlinc] - #ACTION_TYPE_FLOAT_INPUT. The action can be passed to #GetActionStateFloat() to retrieve a float value.
[kotlinc] - #ACTION_TYPE_VECTOR2F_INPUT. The action can be passed to #GetActionStateVector2f() to retrieve a 2D float vector.
[kotlinc] - #ACTION_TYPE_POSE_INPUT. The action can can be passed to #CreateActionSpace() to create a space.
[kotlinc] - #ACTION_TYPE_VIBRATION_OUTPUT. The action can be passed to #ApplyHapticFeedback() to send a haptic event to the runtime.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, #CreateActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] "ACTION_TYPE_BOOLEAN_INPUT".."1",
[kotlinc] "ACTION_TYPE_FLOAT_INPUT".."2",
[kotlinc] "ACTION_TYPE_VECTOR2F_INPUT".."3",
[kotlinc] "ACTION_TYPE_POSE_INPUT".."4",
[kotlinc] "ACTION_TYPE_VIBRATION_OUTPUT".."100"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrInputSourceLocalizedNameFlagBits",
[kotlinc]
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT".enum(0x00000001),
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT".enum(0x00000002),
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT".enum(0x00000004)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrEyeVisibility - Eye visibility selector
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #EYE_VISIBILITY_BOTH displays the layer to both eyes.
[kotlinc] - #EYE_VISIBILITY_LEFT displays the layer to the viewer?s physical left eye.
[kotlinc] - #EYE_VISIBILITY_RIGHT displays the layer to the viewer?s physical right eye.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrCompositionLayerCubeKHR, ##XrCompositionLayerCylinderKHR, ##XrCompositionLayerEquirect2KHR, ##XrCompositionLayerEquirectKHR, ##XrCompositionLayerQuad
[kotlinc] """,
[kotlinc]
[kotlinc] "EYE_VISIBILITY_BOTH".."0",
[kotlinc] "EYE_VISIBILITY_LEFT".."1",
[kotlinc] "EYE_VISIBILITY_RIGHT".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrSessionState - Session lifecycle state
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #SESSION_STATE_UNKNOWN. An unknown state. The runtime must not return this value in an ##XrEventDataSessionStateChanged event.
[kotlinc] - #SESSION_STATE_IDLE. The initial state after calling #CreateSession() or returned to after calling #EndSession().
[kotlinc] - #SESSION_STATE_READY. The application is ready to call #BeginSession() and sync its frame loop with the runtime.
[kotlinc] - #SESSION_STATE_SYNCHRONIZED. The application has synced its frame loop with the runtime but is not visible to the user.
[kotlinc] - #SESSION_STATE_VISIBLE. The application has synced its frame loop with the runtime and is visible to the user but cannot receive XR input.
[kotlinc] - #SESSION_STATE_FOCUSED. The application has synced its frame loop with the runtime, is visible to the user and can receive XR input.
[kotlinc] - #SESSION_STATE_STOPPING. The application should exit its frame loop and call #EndSession().
[kotlinc] - #SESSION_STATE_LOSS_PENDING. The session is in the process of being lost. The application should destroy the current session and can optionally recreate it.
[kotlinc] - #SESSION_STATE_EXITING. The application should end its XR experience and not automatically restart it.
[kotlinc]
[kotlinc]
[kotlinc] The #SESSION_STATE_UNKNOWN state must not be returned by the runtime, and is only defined to avoid 0 being a valid state.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_IDLE state indicates that the runtime considers the session is idle. Applications in this state should minimize resource consumption but continue to call #PollEvent() at some reasonable cadence.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_READY state indicates that the runtime desires the application to prepare rendering resources, begin its session and synchronize its frame loop with the runtime. The application does this by successfully calling #BeginSession() and then running its frame loop by calling #WaitFrame(), #BeginFrame() and #EndFrame() in a loop. If the runtime wishes to return the session to the #SESSION_STATE_IDLE state, it must wait until the application calls #BeginSession(). After returning from the #BeginSession() call, the runtime may then immediately transition forward through the #SESSION_STATE_SYNCHRONIZED state to the #SESSION_STATE_STOPPING state, to request that the application end this session. If the system supports a user engagement sensor and runtime is in #SESSION_STATE_IDLE state, the runtime should not transition to the #SESSION_STATE_READY state until the user starts engaging with the device.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_SYNCHRONIZED state indicates that the application has synchronized its frame loop with the runtime, but its frames are not visible to the user. The application should continue running its frame loop by calling #WaitFrame(), #BeginFrame() and #EndFrame(), although it should avoid heavy GPU work so that other visible applications can take CPU and GPU precedence. The application can save resources here by skipping rendering and not submitting any composition layers until #WaitFrame() returns an ##XrFrameState with {@code shouldRender} set to true. A runtime may use this frame synchronization to facilitate seamless switching from a previous XR application to this application on a frame boundary.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_VISIBLE state indicates that the application has synchronized its frame loop with the runtime, and the session?s frames will be visible to the user, but the session is not eligible to receive XR input. An application may be visible but not have focus, for example when the runtime is composing a modal pop-up on top of the application?s rendered frames. The application should continue running its frame loop, rendering and submitting its composition layers, although it may wish to pause its experience, as users cannot interact with the application at this time. It is important for applications to continue rendering when visible, even when they do not have focus, so the user continues to see something reasonable underneath modal pop-ups. Runtimes should make input actions inactive while the application is unfocused, and applications should react to an inactive input action by skipping rendering of that action?s input avatar (depictions of hands or other tracked objects controlled by the user).
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_FOCUSED state indicates that the application has synchronized its frame loop with the runtime, the session?s frames will be visible to the user, and the session is eligible to receive XR input. The runtime should only give one session XR input focus at any given time. The application should be running its frame loop, rendering and submitting composition layers, including input avatars (depictions of hands or other tracked objects controlled by the user) for any input actions that are active. The runtime should avoid rendering its own input avatars when an application is focused, unless input from a given source is being captured by the runtime at the moment.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_STOPPING state indicates that the runtime has determined that the application should halt its rendering loop. Applications should exit their rendering loop and call #EndSession() when in this state. A possible reason for this would be to minimize contention between multiple applications. If the system supports a user engagement sensor and the session is running, the runtime should transition to the #SESSION_STATE_STOPPING state when the user stops engaging with the device.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_EXITING state indicates the runtime wishes the application to terminate its XR experience, typically due to a user request via a runtime user interface. Applications should gracefully end their process when in this state if they do not have a non-XR user experience.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_LOSS_PENDING state indicates the runtime is no longer able to operate with the current session, for example due to the loss of a display hardware connection. An application should call #DestroySession() and may end its process or decide to poll #GetSystem() at some reasonable cadence to get a new {@code XrSystemId}, and re-initialize all graphics resources related to the new system, and then create a new session using #CreateSession(). After the event is queued, subsequent calls to functions that accept {@code XrSession} parameters must no longer return any success code other than #SESSION_LOSS_PENDING for the given {@code XrSession} handle. The #SESSION_LOSS_PENDING success result is returned for an unspecified grace period of time, and the functions that return it simulate success in their behavior. If the runtime has no reasonable way to successfully complete a given function (e.g. #CreateSwapchain()) when a lost session is pending, or if the runtime is not able to provide the application a grace period, the runtime may return #ERROR_SESSION_LOST. Thereafter, functions which accept {@code XrSession} parameters for the lost session may return #ERROR_SESSION_LOST to indicate that the function failed and the given session was lost. The {@code XrSession} handle and child handles are henceforth unusable and should be destroyed by the application in order to immediately free up resources associated with those handles.
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataSessionStateChanged, #PollEvent()
[kotlinc] """,
[kotlinc]
[kotlinc] "SESSION_STATE_UNKNOWN".."0",
[kotlinc] "SESSION_STATE_IDLE".."1",
[kotlinc] "SESSION_STATE_READY".."2",
[kotlinc] "SESSION_STATE_SYNCHRONIZED".."3",
[kotlinc] "SESSION_STATE_VISIBLE".."4",
[kotlinc] "SESSION_STATE_FOCUSED".."5",
[kotlinc] "SESSION_STATE_STOPPING".."6",
[kotlinc] "SESSION_STATE_LOSS_PENDING".."7",
[kotlinc] "SESSION_STATE_EXITING".."8"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrObjectType - Specify an enumeration to track object handle types
[kotlinc]
[kotlinc] Description
[kotlinc] The {@code XrObjectType} enumeration defines values, each of which corresponds to a specific OpenXR handle type. These values can be used to associate debug information with a particular type of object through one or more extensions.
[kotlinc]
[kotlinc] The following table defines {@code XrObjectType} and OpenXR Handle relationships:
[kotlinc]
[kotlinc]
[kotlinc] {@code XrObjectType} | OpenXR Handle Type |
[kotlinc]
[kotlinc] #OBJECT_TYPE_UNKNOWN | Unknown/Undefined Handle |
[kotlinc] #OBJECT_TYPE_INSTANCE | {@code XrInstance} |
[kotlinc] #OBJECT_TYPE_SESSION | {@code XrSession} |
[kotlinc] #OBJECT_TYPE_SWAPCHAIN | {@code XrSwapchain} |
[kotlinc] #OBJECT_TYPE_SPACE | {@code XrSpace} |
[kotlinc] #OBJECT_TYPE_ACTION_SET | {@code XrActionSet} |
[kotlinc] #OBJECT_TYPE_ACTION | {@code XrAction} |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrDebugUtilsObjectNameInfoEXT
[kotlinc] """,
[kotlinc]
[kotlinc] "OBJECT_TYPE_UNKNOWN".."0",
[kotlinc] "OBJECT_TYPE_INSTANCE".."1",
[kotlinc] "OBJECT_TYPE_SESSION".."2",
[kotlinc] "OBJECT_TYPE_SWAPCHAIN".."3",
[kotlinc] "OBJECT_TYPE_SPACE".."4",
[kotlinc] "OBJECT_TYPE_ACTION_SET".."5",
[kotlinc] "OBJECT_TYPE_ACTION".."6"
[kotlinc] )
[kotlinc]
[kotlinc] // Instance
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "GetInstanceProcAddr",
[kotlinc] """
[kotlinc] Gets a function pointer for an OpenXR function.
[kotlinc]
[kotlinc] C Specification
[kotlinc] Function pointers for all OpenXR functions can be obtained with the function #GetInstanceProcAddr().
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInstanceProcAddr(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const char* name,
[kotlinc] ? PFN_xrVoidFunction* function);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetInstanceProcAddr() itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this function as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs. Loaders must export function symbols for all core OpenXR functions. Because of this, applications that use only the core OpenXR functions have no need to use #GetInstanceProcAddr().
[kotlinc]
[kotlinc] Because an application can call #GetInstanceProcAddr() before creating an instance, #GetInstanceProcAddr() returns a valid function pointer when the {@code instance} parameter is #NULL_HANDLE and the {@code name} parameter is one of the following strings:
[kotlinc]
[kotlinc] No Instance Required
[kotlinc]
[kotlinc] - #EnumerateInstanceExtensionProperties()
[kotlinc] - #EnumerateApiLayerProperties()
[kotlinc] - #CreateInstance()
[kotlinc]
[kotlinc]
[kotlinc] #GetInstanceProcAddr() must return #ERROR_HANDLE_INVALID if {@code name} is not one of the above strings and {@code instance} is #NULL_HANDLE. #GetInstanceProcAddr() may return #ERROR_HANDLE_INVALID if {@code name} is not one of the above strings and {@code instance} is invalid but not #NULL_HANDLE.
[kotlinc]
[kotlinc] #GetInstanceProcAddr() must return #ERROR_FUNCTION_UNSUPPORTED if {@code instance} is a valid instance and the string specified in {@code name} is not the name of an OpenXR core or enabled extension function.
[kotlinc]
[kotlinc] If {@code name} is the name of an extension function, then the result returned by #GetInstanceProcAddr() will depend upon how the {@code instance} was created. If {@code instance} was created with the related extension?s name appearing in the ##XrInstanceCreateInfo{@code ::enabledExtensionNames} array, then #GetInstanceProcAddr() returns a valid function pointer. If the related extension?s name did not appear in the ##XrInstanceCreateInfo{@code ::enabledExtensionNames} array during the creation of {@code instance}, then #GetInstanceProcAddr() returns #ERROR_FUNCTION_UNSUPPORTED. Because of this, function pointers returned by #GetInstanceProcAddr() using one {@code XrInstance} may not be valid when used with objects related to a different {@code XrInstance}.
[kotlinc]
[kotlinc] The returned function pointer is of type {@code PFN_xrVoidFunction}, and must be cast to the type of the function being queried.
[kotlinc]
[kotlinc] The table below defines the various use cases for #GetInstanceProcAddr() and return value (?{@code fp}? is ?{@code function pointer}?) for each case.
[kotlinc]
[kotlinc] xrGetInstanceProcAddr behavior
[kotlinc]
[kotlinc] {@code instance} parameter | {@code name} parameter | return value |
[kotlinc]
[kotlinc] * | {@code NULL} | undefined |
[kotlinc] invalid instance | * | undefined |
[kotlinc] {@code NULL} | #EnumerateInstanceExtensionProperties() | fp |
[kotlinc] {@code NULL} | #EnumerateApiLayerProperties() | fp |
[kotlinc] {@code NULL} | #CreateInstance() | fp |
[kotlinc] {@code NULL} | * (any {@code name} not covered above) | {@code NULL} |
[kotlinc] instance | core OpenXR function | fp1 |
[kotlinc] instance | enabled extension function for {@code instance} | fp1 |
[kotlinc] instance | * (any {@code name} not covered above) | {@code NULL} |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] - 1
[kotlinc] - The returned function pointer must only be called with a handle (the first parameter) that is {@code instance} or a child of {@code instance}.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - If {@code instance} is not #NULL_HANDLE, {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code name} must be a null-terminated UTF-8 string
[kotlinc] - {@code function} must be a pointer to a {@code PFN_xrVoidFunction} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_FUNCTION_UNSUPPORTED
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance that the function pointer will be compatible with, or {@code NULL} for functions not dependent on any instance."),
[kotlinc] charUTF8.const.p("name", "the name of the function to obtain."),
[kotlinc] Check(1)..PFN_xrVoidFunction.p("function", "the address of the function pointer to get.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "EnumerateApiLayerProperties",
[kotlinc] """
[kotlinc] Returns up to requested number of global layer properties.
[kotlinc]
[kotlinc] C Specification
[kotlinc] To determine what set of API layers are available, OpenXR provides the #EnumerateApiLayerProperties() function:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateApiLayerProperties(
[kotlinc] ? uint32_t propertyCapacityInput,
[kotlinc] ? uint32_t* propertyCountOutput,
[kotlinc] ? XrApiLayerProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] The list of available layers may change at any time due to actions outside of the OpenXR runtime, so two calls to #EnumerateApiLayerProperties() with the same parameters may return different results, or retrieve different {@code propertyCountOutput} values or {@code properties} contents.
[kotlinc]
[kotlinc] Once an instance has been created, the layers enabled for that instance will continue to be enabled and valid for the lifetime of that instance, even if some of them become unavailable for future instances.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code propertyCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code propertyCapacityInput} is not 0, {@code properties} must be a pointer to an array of {@code propertyCapacityInput} ##XrApiLayerProperties structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrApiLayerProperties
[kotlinc] """,
[kotlinc]
[kotlinc] AutoSize("properties")..uint32_t("propertyCapacityInput", "the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("propertyCountOutput", "a pointer to the count of properties written, or a pointer to the required capacity in the case that propertyCapacityInput is 0."),
[kotlinc] nullable..XrApiLayerProperties.p("properties", "a pointer to an array of ##XrApiLayerProperties structures, but can be {@code NULL} if propertyCapacityInput is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "EnumerateInstanceExtensionProperties",
[kotlinc] """
[kotlinc] Returns properties of available instance extensions.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The application can determine the available instance extensions by calling #EnumerateInstanceExtensionProperties():
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateInstanceExtensionProperties(
[kotlinc] ? const char* layerName,
[kotlinc] ? uint32_t propertyCapacityInput,
[kotlinc] ? uint32_t* propertyCountOutput,
[kotlinc] ? XrExtensionProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] If {@code properties} is {@code NULL}, then the number of extensions properties available is returned in {@code propertyCountOutput}. Otherwise, {@code propertyCountInput} must point to a variable set by the user to the number of elements in the {@code properties} array. If {@code propertyCountInput} is less than the number of extension properties available, the contents of {@code properties} will be undefined. If {@code propertyCountInput} is smaller than the number of extensions available, the runtime must return the failure code #ERROR_SIZE_INSUFFICIENT and the contents of {@code properties} are undefined.
[kotlinc]
[kotlinc] Because the list of available layers may change externally between calls to #EnumerateInstanceExtensionProperties(), two calls may retrieve different results if a {@code layerName} is available in one call but not in another. The extensions supported by a layer may also change between two calls, e.g. if the layer implementation is replaced by a different version between those calls.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - If {@code layerName} is not {@code NULL}, {@code layerName} must be a null-terminated UTF-8 string
[kotlinc] - {@code propertyCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code propertyCapacityInput} is not 0, {@code properties} must be a pointer to an array of {@code propertyCapacityInput} ##XrExtensionProperties structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_RUNTIME_UNAVAILABLE
[kotlinc] - #ERROR_API_LAYER_NOT_PRESENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtensionProperties
[kotlinc] """,
[kotlinc]
[kotlinc] nullable..charUTF8.const.p("layerName", "either {@code NULL} or a pointer to a string naming the API layer to retrieve extensions from, as returned by #EnumerateApiLayerProperties()."),
[kotlinc] AutoSize("properties")..uint32_t("propertyCapacityInput", "the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("propertyCountOutput", "a pointer to the count of properties written, or a pointer to the required capacity in the case that {@code propertyCapacityInput} is 0."),
[kotlinc] nullable..XrExtensionProperties.p("properties", "a pointer to an array of ##XrExtensionProperties structures, but can be {@code NULL} if {@code propertyCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "CreateInstance",
[kotlinc] """
[kotlinc] Creates an OpenXR Instance.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateInstance() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateInstance(
[kotlinc] ? const XrInstanceCreateInfo* createInfo,
[kotlinc] ? XrInstance* instance);
[kotlinc]
[kotlinc] Description
[kotlinc] #CreateInstance() creates the {@code XrInstance}, then enables and initializes global API layers and extensions requested by the application. If an extension is provided by an API layer, both the API layer and extension must be specified at #CreateInstance() time. If a specified API layer cannot be found, no {@code XrInstance} will be created and the function will return #ERROR_API_LAYER_NOT_PRESENT. Likewise, if a specified extension cannot be found, the call must return #ERROR_EXTENSION_NOT_PRESENT and no {@code XrInstance} will be created. Additionally, some runtimes may limit the number of concurrent instances that may be in use. If the application attempts to create more instances than a runtime can simultaneously support, #CreateInstance() may return #ERROR_LIMIT_REACHED.
[kotlinc]
[kotlinc] If the ##XrApplicationInfo{@code ::applicationName} is the empty string the runtime must return #ERROR_NAME_INVALID.
[kotlinc]
[kotlinc] If the ##XrInstanceCreateInfo structure contains a platform-specific extension for a platform other than the target platform, #ERROR_INITIALIZATION_FAILED may be returned. If a mandatory platform-specific extension is defined for the target platform but no matching extension struct is provided in ##XrInstanceCreateInfo the runtime must return #ERROR_INITIALIZATION_FAILED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrInstanceCreateInfo structure
[kotlinc] - {@code instance} must be a pointer to an {@code XrInstance} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_RUNTIME_UNAVAILABLE
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_INITIALIZATION_FAILED
[kotlinc] - #ERROR_EXTENSION_NOT_PRESENT
[kotlinc] - #ERROR_API_VERSION_UNSUPPORTED
[kotlinc] - #ERROR_API_LAYER_NOT_PRESENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInstanceCreateInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstanceCreateInfo.const.p("createInfo", "points to an instance of ##XrInstanceCreateInfo controlling creation of the instance."),
[kotlinc] Check(1)..XrInstance.p("instance", "points to an {@code XrInstance} handle in which the resulting instance is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyInstance",
[kotlinc] """
[kotlinc] Destroy an instance of OpenXR.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyInstance() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyInstance(
[kotlinc] ? XrInstance instance);
[kotlinc]
[kotlinc] Parameter Descriptions
[kotlinc]
[kotlinc] - {@code instance} is the handle to the instance to destroy.
[kotlinc]
[kotlinc]
[kotlinc] {@code XrInstance} handles are destroyed using #DestroyInstance(). When an {@code XrInstance} is destroyed, all handles that are children of that {@code XrInstance} are also destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code instance}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetInstanceProperties",
[kotlinc] """
[kotlinc] Gets information about the instance.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetInstanceProperties() function provides information about the instance and the associated runtime.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInstanceProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrInstanceProperties* instanceProperties);
[kotlinc]
[kotlinc] Description
[kotlinc] The {@code instanceProperties} parameter must be filled out by the runtime in response to this call, with information as defined in ##XrInstanceProperties.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code instanceProperties} must be a pointer to an ##XrInstanceProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInstanceProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "a handle to an {@code XrInstance} previously created with #CreateInstance()."),
[kotlinc] XrInstanceProperties.p("instanceProperties", "points to an ##XrInstanceProperties which describes the {@code instance}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "PollEvent",
[kotlinc] """
[kotlinc] Polls for events.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrPollEvent(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrEventDataBuffer* eventData);
[kotlinc]
[kotlinc] Parameter Descriptions
[kotlinc]
[kotlinc] - {@code instance} is a valid {@code XrInstance}.
[kotlinc] - {@code eventData} is a pointer to a valid ##XrEventDataBuffer.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code eventData} must be a pointer to an ##XrEventDataBuffer structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #EVENT_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] The runtime must discard queued events which contain destroyed or otherwise invalid handles.
[kotlinc]
[kotlinc] Event Descriptions
[kotlinc]
[kotlinc] Event | Description |
[kotlinc]
[kotlinc] ##XrEventDataEventsLost | event queue has overflowed and some events were lost |
[kotlinc] ##XrEventDataInstanceLossPending | application is about to lose the instance |
[kotlinc] ##XrEventDataInteractionProfileChanged | active input form factor for one or more top level user paths has changed |
[kotlinc] ##XrEventDataReferenceSpaceChangePending | runtime will begin operating with updated space bounds |
[kotlinc] ##XrEventDataSessionStateChanged | application has changed lifecycle state |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataBuffer
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", ""),
[kotlinc] XrEventDataBuffer.p("eventData", "")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ResultToString",
[kotlinc] """
[kotlinc] Converts an XrResult to a UTF-8 string.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrResultToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrResult value,
[kotlinc] ? char buffer[XR_MAX_RESULT_STRING_SIZE]);
[kotlinc]
[kotlinc] Description
[kotlinc] Returns the text version of the provided {@code XrResult} value as a UTF-8 string.
[kotlinc]
[kotlinc] In all cases the returned string must be one of:
[kotlinc]
[kotlinc] Result String Return Values
[kotlinc]
[kotlinc] - The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value 0 results in the string {@code XR_SUCCESS})
[kotlinc] - {@code XR_UNKNOWN_SUCCESS_} concatenated with the positive result number expressed as a decimal number.
[kotlinc] - {@code XR_UNKNOWN_FAILURE_} concatenated with the negative result number expressed as a decimal number.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code value} must be a valid {@code XrResult} value
[kotlinc] - {@code buffer} must be a character array of length #MAX_RESULT_STRING_SIZE
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #StructureTypeToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance to ask for the string."),
[kotlinc] XrResult("value", "the {@code XrResult} value to turn into a string."),
[kotlinc] Check("XR_MAX_RESULT_STRING_SIZE")..charUTF8.p("buffer", "the buffer that will be used to return the string in.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StructureTypeToString",
[kotlinc] """
[kotlinc] Converts an XrStructureType to a UTF-8 string.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StructureTypeToString() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStructureTypeToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrStructureType value,
[kotlinc] ? char buffer[XR_MAX_STRUCTURE_NAME_SIZE]);
[kotlinc]
[kotlinc] Description
[kotlinc] Returns the text version of the provided {@code XrStructureType} value as a UTF-8 string.
[kotlinc]
[kotlinc] In all cases the returned string must be one of:
[kotlinc]
[kotlinc] Structure Type String Return Values
[kotlinc]
[kotlinc] - The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value of #TYPE_INSTANCE_CREATE_INFO results in the string #TYPE_INSTANCE_CREATE_INFO)
[kotlinc] - {@code XR_UNKNOWN_STRUCTURE_TYPE_} concatenated with the structure type number expressed as a decimal number.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code value} must be a valid {@code XrStructureType} value
[kotlinc] - {@code buffer} must be a character array of length #MAX_STRUCTURE_NAME_SIZE
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #ResultToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance to ask for the string."),
[kotlinc] XrStructureType("value", "the {@code XrStructureType} value to turn into a string."),
[kotlinc] Check("XR_MAX_STRUCTURE_NAME_SIZE")..charUTF8.p("buffer", "the buffer that will be used to return the string in.")
[kotlinc] )
[kotlinc]
[kotlinc] // Device
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetSystem",
[kotlinc] """
[kotlinc] Gets a system identifier.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetSystem() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetSystem(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrSystemGetInfo* getInfo,
[kotlinc] ? XrSystemId* systemId);
[kotlinc]
[kotlinc] Description
[kotlinc] To get an {@code XrSystemId}, an application specifies its desired form factor to #GetSystem() and gets the runtime?s {@code XrSystemId} associated with that configuration.
[kotlinc]
[kotlinc] If the form factor is supported but temporarily unavailable, #GetSystem() must return #ERROR_FORM_FACTOR_UNAVAILABLE. A runtime may return #SUCCESS on a subsequent call for a form factor it previously returned #ERROR_FORM_FACTOR_UNAVAILABLE. For example, connecting or warming up hardware might cause an unavailable form factor to become available.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrSystemGetInfo structure
[kotlinc] - {@code systemId} must be a pointer to an {@code XrSystemId} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_FORM_FACTOR_UNSUPPORTED
[kotlinc] - #ERROR_FORM_FACTOR_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #NULL_SYSTEM_ID, ##XrSystemGetInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance from which to get the information."),
[kotlinc] XrSystemGetInfo.const.p("getInfo", "a pointer to an ##XrSystemGetInfo structure containing the application?s requests for a system."),
[kotlinc] Check(1)..XrSystemId.p("systemId", "the returned {@code XrSystemId}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetSystemProperties",
[kotlinc] """
[kotlinc] Gets the properties of a particular system.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetSystemProperties() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetSystemProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrSystemProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] An application can call #GetSystemProperties() to retrieve information about the system such as vendor ID, system name, and graphics and tracking properties.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code properties} must be a pointer to an ##XrSystemProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSystemProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose properties will be queried."),
[kotlinc] XrSystemProperties.p("properties", "points to an instance of the ##XrSystemProperties structure, that will be filled with returned information.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateEnvironmentBlendModes",
[kotlinc] """
[kotlinc] Lists environment blend modes.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateEnvironmentBlendModes() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateEnvironmentBlendModes(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? uint32_t environmentBlendModeCapacityInput,
[kotlinc] ? uint32_t* environmentBlendModeCountOutput,
[kotlinc] ? XrEnvironmentBlendMode* environmentBlendModes);
[kotlinc]
[kotlinc] Description
[kotlinc] Enumerates the set of environment blend modes that this runtime supports for a given view configuration of the system. Environment blend modes should be in order from highest to lowest runtime preference.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and {@code viewConfigurationType} for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code environmentBlendModeCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code environmentBlendModeCapacityInput} is not 0, {@code environmentBlendModes} must be a pointer to an array of {@code environmentBlendModeCapacityInput} {@code XrEnvironmentBlendMode} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose environment blend modes will be enumerated."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} to enumerate."),
[kotlinc] AutoSize("environmentBlendModes")..uint32_t("environmentBlendModeCapacityInput", "the capacity of the {@code environmentBlendModes} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("environmentBlendModeCountOutput", "a pointer to the count of {@code environmentBlendModes} written, or a pointer to the required capacity in the case that {@code environmentBlendModeCapacityInput} is 0."),
[kotlinc] nullable..XrEnvironmentBlendMode.p("environmentBlendModes", "a pointer to an array of {@code XrEnvironmentBlendMode} values, but can be {@code NULL} if {@code environmentBlendModeCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateSession",
[kotlinc] """
[kotlinc] Creates an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateSession(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrSessionCreateInfo* createInfo,
[kotlinc] ? XrSession* session);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates a session using the provided {@code createInfo} and returns a handle to that session. This session is created in the #SESSION_STATE_IDLE state, and a corresponding ##XrEventDataSessionStateChanged event to the #SESSION_STATE_IDLE state must be generated as the first such event for the new session.
[kotlinc]
[kotlinc] The runtime must return #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING (#ERROR_VALIDATION_FAILURE may be returned due to legacy behavior) on calls to #CreateSession() if a function named like {@code xrGet*GraphicsRequirements} has not been called for the same {@code instance} and ##XrSessionCreateInfo{@code ::systemId}. (See graphics binding extensions for details.)
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrSessionCreateInfo structure
[kotlinc] - {@code session} must be a pointer to an {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc] - #ERROR_INITIALIZATION_FAILED
[kotlinc] - #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING
[kotlinc] - #ERROR_GRAPHICS_DEVICE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtensionProperties, ##XrSessionCreateInfo, #BeginSession(), #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSessionCreateInfo.const.p("createInfo", "a pointer to an ##XrSessionCreateInfo structure containing information about how to create the session."),
[kotlinc] Check(1)..XrSession.p("session", "a pointer to a handle in which the created {@code XrSession} is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySession",
[kotlinc] """
[kotlinc] Destroys an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySession() function is defined as.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] {@code XrSession} handles are destroyed using #DestroySession(). When an {@code XrSession} is destroyed, all handles that are children of that {@code XrSession} are also destroyed.
[kotlinc]
[kotlinc] The application is responsible for ensuring that it has no calls using {@code session} in progress when the session is destroyed.
[kotlinc]
[kotlinc] #DestroySession() can be called when the session is in any session state.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code session}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #BeginSession(), #CreateSession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] // Space
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateReferenceSpaces",
[kotlinc] """
[kotlinc] Enumerate available reference spaces.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateReferenceSpaces() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateReferenceSpaces(
[kotlinc] ? XrSession session,
[kotlinc] ? uint32_t spaceCapacityInput,
[kotlinc] ? uint32_t* spaceCountOutput,
[kotlinc] ? XrReferenceSpaceType* spaces);
[kotlinc]
[kotlinc] Description
[kotlinc] Enumerates the set of reference space types that this runtime supports for a given session. Runtimes must always return identical buffer contents from this enumeration for the lifetime of the session.
[kotlinc]
[kotlinc] If a session enumerates support for a given reference space type, calls to #CreateReferenceSpace() must succeed for that session, with any transient unavailability of poses expressed later during calls to #LocateSpace().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code spaceCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code spaceCapacityInput} is not 0, {@code spaces} must be a pointer to an array of {@code spaceCapacityInput} {@code XrReferenceSpaceType} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] AutoSize("spaces")..uint32_t("spaceCapacityInput", "the capacity of the spaces array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("spaceCountOutput", "a pointer to the count of spaces written, or a pointer to the required capacity in the case that {@code spaceCapacityInput} is 0."),
[kotlinc] nullable..XrReferenceSpaceType.p("spaces", "a pointer to an application-allocated array that will be filled with the enumerant of each supported reference space. It can be {@code NULL} if {@code spaceCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateReferenceSpace",
[kotlinc] """
[kotlinc] Creates a reference space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateReferenceSpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateReferenceSpace(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrReferenceSpaceCreateInfo* createInfo,
[kotlinc] ? XrSpace* space);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSpace} handle based on a chosen reference space. Application can provide an ##XrPosef to define the position and orientation of the new space?s origin within the natural reference frame of the reference space.
[kotlinc]
[kotlinc] Multiple {@code XrSpace} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSpace} handle must be eventually freed via the #DestroySpace() function.
[kotlinc]
[kotlinc] The runtime must return #ERROR_REFERENCE_SPACE_UNSUPPORTED if the given reference space type is not supported by this {@code session}.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrReferenceSpaceCreateInfo structure
[kotlinc] - {@code space} must be a pointer to an {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_REFERENCE_SPACE_UNSUPPORTED
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrReferenceSpaceCreateInfo, #DestroySpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] XrReferenceSpaceCreateInfo.const.p("createInfo", "the ##XrReferenceSpaceCreateInfo used to specify the space."),
[kotlinc] Check(1)..XrSpace.p("space", "the returned space handle.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetReferenceSpaceBoundsRect",
[kotlinc] """
[kotlinc] Gets the bounds rectangle of a reference space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] XR systems may have limited real world spatial ranges in which users can freely move around while remaining tracked. Applications may wish to query these boundaries and alter application behavior or content placement to ensure the user can complete the experience while remaining within the boundary. Applications can query this information using #GetReferenceSpaceBoundsRect().
[kotlinc]
[kotlinc] When called, #GetReferenceSpaceBoundsRect() should return the extents of a rectangle that is clear of obstacles down to the floor, allowing where the user can freely move while remaining tracked, if available for that reference space. The returned extent represents the dimensions of an axis-aligned bounding box where the ##XrExtent2Df{@code ::width} and ##XrExtent2Df{@code ::height} fields correspond to the X and Z axes of the provided space, with the extents centered at the origin of the space. Not all systems or spaces may support boundaries. If a runtime is unable to provide bounds for a given space, #SPACE_BOUNDS_UNAVAILABLE will be returned and all fields of {@code bounds} will be set to 0.
[kotlinc]
[kotlinc] The returned extents are expressed relative to the natural origin of the provided {@code XrReferenceSpaceType} and must not incorporate any origin offsets specified by the application during calls to #CreateReferenceSpace().
[kotlinc]
[kotlinc] The runtime must return #ERROR_REFERENCE_SPACE_UNSUPPORTED if the {@code XrReferenceSpaceType} passed in {@code createInfo} is not supported by this {@code session}.
[kotlinc]
[kotlinc] When a runtime will begin operating with updated space bounds, the runtime must queue a corresponding ##XrEventDataReferenceSpaceChangePending event.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetReferenceSpaceBoundsRect(
[kotlinc] ? XrSession session,
[kotlinc] ? XrReferenceSpaceType referenceSpaceType,
[kotlinc] ? XrExtent2Df* bounds);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code referenceSpaceType} must be a valid {@code XrReferenceSpaceType} value
[kotlinc] - {@code bounds} must be a pointer to an ##XrExtent2Df structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SPACE_BOUNDS_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_FUNCTION_UNSUPPORTED
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_REFERENCE_SPACE_UNSUPPORTED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtent2Df, #CreateReferenceSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] XrReferenceSpaceType("referenceSpaceType", "the reference space type whose bounds should be retrieved."),
[kotlinc] XrExtent2Df.p("bounds", "the returned space extents.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateActionSpace",
[kotlinc] """
[kotlinc] Creates a space based on a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateActionSpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateActionSpace(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionSpaceCreateInfo* createInfo,
[kotlinc] ? XrSpace* space);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSpace} handle based on a chosen pose action. Application can provide an ##XrPosef to define the position and orientation of the new space?s origin within the natural reference frame of the action space.
[kotlinc]
[kotlinc] Multiple {@code XrSpace} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSpace} handle must be eventually freed via the #DestroySpace() function or by destroying the parent {@code XrAction} handle.
[kotlinc]
[kotlinc] The runtime must return #ERROR_ACTION_TYPE_MISMATCH if the action provided in {@code action} is not of type #ACTION_TYPE_POSE_INPUT.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionSpaceCreateInfo structure
[kotlinc] - {@code space} must be a pointer to an {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionSpaceCreateInfo, #DestroySpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to create the action space in."),
[kotlinc] XrActionSpaceCreateInfo.const.p("createInfo", "the ##XrActionSpaceCreateInfo used to specify the space."),
[kotlinc] Check(1)..XrSpace.p("space", "the returned space handle.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "LocateSpace",
[kotlinc] """
[kotlinc] Locates a space with reference to another space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #LocateSpace() provides the physical location of a space in a base space at a specified time, if currently known by the runtime.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrLocateSpace(
[kotlinc] ? XrSpace space,
[kotlinc] ? XrSpace baseSpace,
[kotlinc] ? XrTime time,
[kotlinc] ? XrSpaceLocation* location);
[kotlinc]
[kotlinc] Description
[kotlinc] For a {@code time} in the past, the runtime should locate the spaces based on the runtime?s most accurate current understanding of how the world was at that historical time.
[kotlinc]
[kotlinc] For a {@code time} in the future, the runtime should locate the spaces based on the runtime?s most up-to-date prediction of how the world will be at that future time.
[kotlinc]
[kotlinc] The minimum valid range of values for {@code time} are described in prediction-time-limits. For values of {@code time} outside this range, #LocateSpace() may return a location with no position and #SPACE_LOCATION_POSITION_VALID_BIT unset.
[kotlinc]
[kotlinc] Some devices improve their understanding of the world as the device is used. The location returned by #LocateSpace() for a given {@code space}, {@code baseSpace} and {@code time} may change over time, even for spaces that track static objects, as one or both spaces adjust their origins.
[kotlinc]
[kotlinc] During tracking loss of {@code space} relative to {@code baseSpace}, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] If the runtime has not yet observed even a last-known pose for how to locate {@code space} in {@code baseSpace} (e.g. one space is an action space bound to a motion controller that has not yet been detected, or the two spaces are in disconnected fragments of the runtime?s tracked volume), the runtime should return a location with no position and #SPACE_LOCATION_POSITION_VALID_BIT unset.
[kotlinc]
[kotlinc] The runtime must return a location with both #SPACE_LOCATION_POSITION_VALID_BIT and #SPACE_LOCATION_POSITION_TRACKED_BIT set when locating {@code space} and {@code baseSpace} if both spaces were created relative to the same entity (e.g. two action spaces for the same action), even if the entity is currently untracked. The location in this case is the difference in the two spaces' application-specified transforms relative to that common entity.
[kotlinc]
[kotlinc] The runtime should return a location with #SPACE_LOCATION_POSITION_VALID_BIT set and #SPACE_LOCATION_POSITION_TRACKED_BIT unset for spaces tracking two static entities in the world when their relative pose is known to the runtime. This enables applications to make use of the runtime?s latest knowledge of the world, even during tracking loss.
[kotlinc]
[kotlinc] If an ##XrSpaceVelocity structure is chained to the {@code next} pointer of ##XrSpaceLocation and the velocity is observed or can be calculated by the runtime, the runtime must fill in the linear velocity of the origin of space within the reference frame of {@code baseSpace} and set the #SPACE_VELOCITY_LINEAR_VALID_BIT. Similarly, if an ##XrSpaceVelocity structure is chained to the {@code next} pointer of ##XrSpaceLocation and the angular velocity is observed or can be calculated by the runtime, the runtime must fill in the angular velocity of the origin of space within the reference frame of {@code baseSpace} and set the #SPACE_VELOCITY_ANGULAR_VALID_BIT.
[kotlinc]
[kotlinc] The following example code shows how an application can get both the location and velocity of a space within a base space using the #LocateSpace() function by chaining an ##XrSpaceVelocity to the next pointer of ##XrSpaceLocation and calling #LocateSpace().
[kotlinc]
[kotlinc]
[kotlinc] ?XrSpace space; // previously initialized
[kotlinc] ?XrSpace baseSpace; // previously initialized
[kotlinc] ?XrTime time; // previously initialized
[kotlinc] ?
[kotlinc] ?XrSpaceVelocity velocity {XR_TYPE_SPACE_VELOCITY};
[kotlinc] ?XrSpaceLocation location {XR_TYPE_SPACE_LOCATION, &velocity};
[kotlinc] ?xrLocateSpace(space, baseSpace, time, &location);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code space} must be a valid {@code XrSpace} handle
[kotlinc] - {@code baseSpace} must be a valid {@code XrSpace} handle
[kotlinc] - {@code location} must be a pointer to an ##XrSpaceLocation structure
[kotlinc] - Both of {@code baseSpace} and {@code space} must have been created, allocated, or retrieved from the same {@code XrSession}
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSpaceLocation
[kotlinc] """,
[kotlinc]
[kotlinc] XrSpace("space", "identifies the target space to locate."),
[kotlinc] XrSpace("baseSpace", "identifies the underlying space in which to locate {@code space}."),
[kotlinc] XrTime("time", "the time for which the location should be provided."),
[kotlinc] XrSpaceLocation.p("location", "provides the location of {@code space} in {@code baseSpace}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySpace",
[kotlinc] """
[kotlinc] Creates a space based on a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySpace(
[kotlinc] ? XrSpace space);
[kotlinc]
[kotlinc] Description
[kotlinc] {@code XrSpace} handles are destroyed using #DestroySpace(). The runtime may still use this space if there are active dependencies (e.g, compositions in progress).
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code space} must be a valid {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code space}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateActionSpace(), #CreateReferenceSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSpace("space", "a handle to an {@code XrSpace} previously created by a function such as #CreateReferenceSpace().")
[kotlinc] )
[kotlinc]
[kotlinc] // ViewConfigurations
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateViewConfigurations",
[kotlinc] """
[kotlinc] Enumerates supported view configurations.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateViewConfigurations() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateViewConfigurations(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? uint32_t viewConfigurationsTypeCapacityInput,
[kotlinc] ? uint32_t* viewConfigurationsTypeCountOutput,
[kotlinc] ? XrViewConfigurationType* viewConfigurationsTypes);
[kotlinc]
[kotlinc] Description
[kotlinc] #EnumerateViewConfigurations() enumerates the view configuration types supported by the {@code XrSystemId}. The supported set for that system must not change during the lifetime of its {@code XrInstance}. The returned list of primary view configurations should be in order from what the runtime considered highest to lowest user preference. Thus the first enumerated view configuration type should be the one the runtime prefers the application to use if possible.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationsTypeCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewConfigurationsTypeCapacityInput} is not 0, {@code viewConfigurationsTypes} must be a pointer to an array of {@code viewConfigurationsTypeCapacityInput} {@code XrViewConfigurationType} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configurations will be enumerated."),
[kotlinc] AutoSize("viewConfigurationsTypes")..uint32_t("viewConfigurationsTypeCapacityInput", "the capacity of the {@code viewConfigurations} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("viewConfigurationsTypeCountOutput", "a pointer to the count of {@code viewConfigurations} written, or a pointer to the required capacity in the case that {@code viewConfigurationsTypeCapacityInput} is 0."),
[kotlinc] nullable..XrViewConfigurationType.p("viewConfigurationsTypes", "a pointer to an array of {@code XrViewConfigurationType} values, but can be {@code NULL} if {@code viewConfigurationsTypeCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetViewConfigurationProperties",
[kotlinc] """
[kotlinc] Gets information for a view configuration.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetViewConfigurationProperties() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetViewConfigurationProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? XrViewConfigurationProperties* configurationProperties);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetViewConfigurationProperties() queries properties of an individual view configuration. Applications must use one of the supported view configuration types returned by #EnumerateViewConfigurations(). If {@code viewConfigurationType} is not supported by this {@code XrInstance} the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code configurationProperties} must be a pointer to an ##XrViewConfigurationProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrViewConfigurationProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configuration is being queried."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} of the configuration to get."),
[kotlinc] XrViewConfigurationProperties.p("configurationProperties", "a pointer to view configuration properties to return.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateViewConfigurationViews",
[kotlinc] """
[kotlinc] Gets view configuration views.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateViewConfigurationViews() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateViewConfigurationViews(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? uint32_t viewCapacityInput,
[kotlinc] ? uint32_t* viewCountOutput,
[kotlinc] ? XrViewConfigurationView* views);
[kotlinc]
[kotlinc] Description
[kotlinc] Each {@code XrViewConfigurationType} defines the number of views associated with it. Applications can query more details of each view element using #EnumerateViewConfigurationViews(). If the supplied {@code viewConfigurationType} is not supported by this {@code XrInstance} and {@code XrSystemId}, the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and {@code viewConfigurationType} for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code viewCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewCapacityInput} is not 0, {@code views} must be a pointer to an array of {@code viewCapacityInput} ##XrViewConfigurationView structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrViewConfigurationView, #GetViewConfigurationProperties()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configuration is being queried."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} of the configuration to get."),
[kotlinc] AutoSize("views")..uint32_t("viewCapacityInput", "the capacity of the {@code views} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("viewCountOutput", "a pointer to the count of {@code views} written, or a pointer to the required capacity in the case that {@code viewCapacityInput} is 0."),
[kotlinc] nullable..XrViewConfigurationView.p("views", "a pointer to an array of ##XrViewConfigurationView values, but can be {@code NULL} if {@code viewCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Image
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateSwapchainFormats",
[kotlinc] """
[kotlinc] Enumerates swapchain formats.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateSwapchainFormats() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateSwapchainFormats(
[kotlinc] ? XrSession session,
[kotlinc] ? uint32_t formatCapacityInput,
[kotlinc] ? uint32_t* formatCountOutput,
[kotlinc] ? int64_t* formats);
[kotlinc]
[kotlinc] Description
[kotlinc] #EnumerateSwapchainFormats() enumerates the texture formats supported by the current session. The type of formats returned are dependent on the graphics API specified in #CreateSession(). For example, if a DirectX graphics API was specified, then the enumerated formats correspond to the DXGI formats, such as {@code DXGI_FORMAT_R8G8B8A8_UNORM_SRGB}. Texture formats should be in order from highest to lowest runtime preference. The application should use the highest preference format that it supports for optimal performance and quality.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the lifetime of the session.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code formatCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code formatCapacityInput} is not 0, {@code formats} must be a pointer to an array of {@code formatCapacityInput} {@code int64_t} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session that enumerates the supported formats."),
[kotlinc] AutoSize("formats")..uint32_t("formatCapacityInput", "the capacity of the {@code formats}, or 0 to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("formatCountOutput", "a pointer to the count of {@code uint64_t} formats written, or a pointer to the required capacity in the case that {@code formatCapacityInput} is 0."),
[kotlinc] nullable..int64_t.p("formats", "a pointer to an array of {@code int64_t} format ids, but can be {@code NULL} if {@code formatCapacityInput} is 0. The format ids are specific to the specified graphics API.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateSwapchain",
[kotlinc] """
[kotlinc] Creates an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateSwapchain() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateSwapchain(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSwapchainCreateInfo* createInfo,
[kotlinc] ? XrSwapchain* swapchain);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSwapchain} handle. The returned swapchain handle may be subsequently used in API calls. Multiple {@code XrSwapchain} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSwapchain} handle must be eventually freed via the #DestroySwapchain() function. The runtime must return #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED if the image format specified in the ##XrSwapchainCreateInfo is unsupported. The runtime must return #ERROR_FEATURE_UNSUPPORTED if any bit of the create flags specified in the ##XrSwapchainCreateInfo is unsupported.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrSwapchainCreateInfo structure
[kotlinc] - {@code swapchain} must be a pointer to an {@code XrSwapchain} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED
[kotlinc] - #ERROR_FEATURE_UNSUPPORTED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainCreateInfo, #AcquireSwapchainImage(), #DestroySwapchain(), #EnumerateSwapchainFormats(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session that creates the image."),
[kotlinc] XrSwapchainCreateInfo.const.p("createInfo", "a pointer to an ##XrSwapchainCreateInfo structure containing parameters to be used to create the image."),
[kotlinc] Check(1)..XrSwapchain.p("swapchain", "a pointer to a handle in which the created {@code XrSwapchain} is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySwapchain",
[kotlinc] """
[kotlinc] Destroys an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySwapchain() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySwapchain(
[kotlinc] ? XrSwapchain swapchain);
[kotlinc]
[kotlinc] Description
[kotlinc] All submitted graphics API commands that refer to {@code swapchain} must have completed execution. Runtimes may continue to utilize swapchain images after #DestroySwapchain() is called.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code swapchain}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateSwapchainImages",
[kotlinc] """
[kotlinc] Gets images from an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateSwapchainImages() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateSwapchainImages(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? uint32_t imageCapacityInput,
[kotlinc] ? uint32_t* imageCountOutput,
[kotlinc] ? XrSwapchainImageBaseHeader* images);
[kotlinc]
[kotlinc] Description
[kotlinc] Fills an array of graphics API-specific {@code XrSwapchainImage} structures. The resources must be constant and valid for the lifetime of the {@code XrSwapchain}.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the lifetime of the swapchain.
[kotlinc]
[kotlinc] Note: {@code images} is a pointer to an array of structures of graphics API-specific type, not an array of structure pointers.
[kotlinc]
[kotlinc] The pointer submitted as {@code images} will be treated as an array of the expected graphics API-specific type based on the graphics API used at session creation time. If the {@code type} member of any array element accessed in this way does not match the expected value, the runtime must return #ERROR_VALIDATION_FAILURE.
[kotlinc]
[kotlinc] Note
[kotlinc] Under a typical memory model, a runtime must treat the supplied pointer as an opaque blob beginning with ##XrSwapchainImageBaseHeader, until after it has verified the {@code type}.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - {@code imageCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code imageCapacityInput} is not 0, {@code images} must be a pointer to an array of {@code imageCapacityInput} ##XrSwapchainImageBaseHeader-based structures. See also: ##XrSwapchainImageOpenGLESKHR, ##XrSwapchainImageOpenGLKHR, ##XrSwapchainImageVulkanKHR
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageBaseHeader, #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the {@code XrSwapchain} to get images from."),
[kotlinc] AutoSize("images")..uint32_t("imageCapacityInput", "the capacity of the {@code images} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("imageCountOutput", "a pointer to the count of {@code images} written, or a pointer to the required capacity in the case that {@code imageCapacityInput} is 0."),
[kotlinc] nullable..XrSwapchainImageBaseHeader.p("images", "a pointer to an array of graphics API-specific {@code XrSwapchainImage} structures, all of the same type, based on ##XrSwapchainImageBaseHeader. It can be {@code NULL} if {@code imageCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "AcquireSwapchainImage",
[kotlinc] """
[kotlinc] Acquire a swapchain image.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #AcquireSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrAcquireSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageAcquireInfo* acquireInfo,
[kotlinc] ? uint32_t* index);
[kotlinc]
[kotlinc] Description
[kotlinc] Acquires the image corresponding to the {@code index} position in the array returned by #EnumerateSwapchainImages(). The runtime must return #ERROR_CALL_ORDER_INVALID if the next available index has already been acquired and not yet released with #ReleaseSwapchainImage(). If the {@code swapchain} was created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags}, this function must not have been previously called for this swapchain. The runtime must return #ERROR_CALL_ORDER_INVALID if a {@code swapchain} created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags} and this function has been successfully called previously for this swapchain.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - If {@code acquireInfo} is not {@code NULL}, {@code acquireInfo} must be a pointer to a valid ##XrSwapchainImageAcquireInfo structure
[kotlinc] - {@code index} must be a pointer to a {@code uint32_t} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageAcquireInfo, #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage(), #WaitSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain from which to acquire an image."),
[kotlinc] nullable..XrSwapchainImageAcquireInfo.const.p("acquireInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrSwapchainImageAcquireInfo."),
[kotlinc] Check(1)..uint32_t.p("index", "the returned image index that has been acquired.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "WaitSwapchainImage",
[kotlinc] """
[kotlinc] Wait for a swapchain image to be available.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #WaitSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrWaitSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageWaitInfo* waitInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] Before an application can begin writing to a swapchain image, it must first wait on the image to avoid writing to it before the compositor has finished reading from it. #WaitSwapchainImage() will implicitly wait on the oldest acquired swapchain image which has not yet been successfully waited on. Once a swapchain image has been successfully waited on without timeout, the app must release before waiting on the next acquired swapchain image.
[kotlinc]
[kotlinc] This function may block for longer than the timeout specified in ##XrSwapchainImageWaitInfo due to scheduling or contention.
[kotlinc]
[kotlinc] If the timeout expires without the image becoming available for writing, #TIMEOUT_EXPIRED must be returned. If #WaitSwapchainImage() returns #TIMEOUT_EXPIRED, the next call to #WaitSwapchainImage() will wait on the same image index again until the function succeeds with #SUCCESS. Note that this is not an error code; {@code XR_SUCCEEDED(#TIMEOUT_EXPIRED)} is {@code true}.
[kotlinc]
[kotlinc] The runtime must eventually relinquish ownership of a swapchain image to the application and must not block indefinitely.
[kotlinc]
[kotlinc] The runtime must return #ERROR_CALL_ORDER_INVALID if no image has been acquired by calling #AcquireSwapchainImage().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - {@code waitInfo} must be a pointer to a valid ##XrSwapchainImageWaitInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #TIMEOUT_EXPIRED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageWaitInfo, #AcquireSwapchainImage(), #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain from which to wait for an image."),
[kotlinc] XrSwapchainImageWaitInfo.const.p("waitInfo", "a pointer to an ##XrSwapchainImageWaitInfo structure.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ReleaseSwapchainImage",
[kotlinc] """
[kotlinc] Release a swapchain image.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #ReleaseSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrReleaseSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageReleaseInfo* releaseInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] If the {@code swapchain} was created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags} structure, this function must not have been previously called for this swapchain.
[kotlinc]
[kotlinc] The runtime must return #ERROR_CALL_ORDER_INVALID if no image has been waited on by calling #WaitSwapchainImage().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - If {@code releaseInfo} is not {@code NULL}, {@code releaseInfo} must be a pointer to a valid ##XrSwapchainImageReleaseInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageReleaseInfo, #AcquireSwapchainImage(), #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #WaitSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the {@code XrSwapchain} from which to release an image."),
[kotlinc] nullable..XrSwapchainImageReleaseInfo.const.p("releaseInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrSwapchainImageReleaseInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] // Session
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "BeginSession",
[kotlinc] """
[kotlinc] Begins an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #BeginSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrBeginSession(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSessionBeginInfo* beginInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] When the application receives ##XrEventDataSessionStateChanged event with the #SESSION_STATE_READY state, the application should then call #BeginSession() to start rendering frames for display to the user.
[kotlinc]
[kotlinc] After this function successfully returns, the session is considered to be running. The application should then start its frame loop consisting of some sequence of #WaitFrame()/#BeginFrame()/#EndFrame() calls.
[kotlinc]
[kotlinc] If the session is already running when the application calls #BeginSession(), the runtime must return error #ERROR_SESSION_RUNNING. If the session is not running when the application calls #BeginSession(), but the session is not yet in the #SESSION_STATE_READY state, the runtime must return error #ERROR_SESSION_NOT_READY.
[kotlinc]
[kotlinc] Note that a runtime may decide not to show the user any given frame from a session at any time, for example if the user has switched to a different application?s running session. The application should check whether #WaitFrame() returns an ##XrFrameState with {@code shouldRender} set to true before rendering a given frame to determine whether that frame will be visible to the user.
[kotlinc]
[kotlinc] Runtime session frame state must start in a reset state when a session transitions to running so that no state is carried over from when the same session was previously running.
[kotlinc]
[kotlinc] If {@code primaryViewConfigurationType} in {@code beginInfo} is not supported by the {@code XrSystemId} used to create the {@code session}, the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code beginInfo} must be a pointer to a valid ##XrSessionBeginInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SESSION_RUNNING
[kotlinc] - #ERROR_SESSION_NOT_READY
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSessionBeginInfo, #CreateSession(), #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] XrSessionBeginInfo.const.p("beginInfo", "a pointer to an ##XrSessionBeginInfo structure.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EndSession",
[kotlinc] """
[kotlinc] Ends an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EndSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEndSession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] When the application receives ##XrEventDataSessionStateChanged event with the #SESSION_STATE_STOPPING state, the application should stop its frame loop and then call #EndSession() to end the running session. This function signals to the runtime that the application will no longer call #WaitFrame(), #BeginFrame() or #EndFrame() from any thread allowing the runtime to safely transition the session to #SESSION_STATE_IDLE. The application must also avoid reading input state or sending haptic output after calling #EndSession().
[kotlinc]
[kotlinc] If the session is not running when the application calls #EndSession(), the runtime must return error #ERROR_SESSION_NOT_RUNNING. If the session is still running when the application calls #EndSession(), but the session is not yet in the #SESSION_STATE_STOPPING state, the runtime must return error #ERROR_SESSION_NOT_STOPPING.
[kotlinc]
[kotlinc] If the application wishes to exit a running session, the application can call #RequestExitSession() so that the session transitions from #SESSION_STATE_IDLE to #SESSION_STATE_EXITING.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_STOPPING
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #BeginSession(), #CreateSession(), #DestroySession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to a running {@code XrSession}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "RequestExitSession",
[kotlinc] """
[kotlinc] Request to exit a running session.
[kotlinc]
[kotlinc] C Specification
[kotlinc] When an application wishes to exit a running session, it can call #RequestExitSession(), requesting that the runtime transition through the various intermediate session states including #SESSION_STATE_STOPPING to #SESSION_STATE_EXITING.
[kotlinc]
[kotlinc] On platforms where an application?s lifecycle is managed by the system, session state changes may be implicitly triggered by application lifecycle state changes. On such platforms, using platform-specific methods to alter application lifecycle state may be the preferred method of provoking session state changes. The behavior of #RequestExitSession() is not altered, however explicit session exit may not interact with the platform-specific application lifecycle.
[kotlinc]
[kotlinc] The #RequestExitSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrRequestExitSession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] If {@code session} is not running when #RequestExitSession() is called, #ERROR_SESSION_NOT_RUNNING must be returned.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to a running {@code XrSession}.")
[kotlinc] )
[kotlinc]
[kotlinc] // Display Timing
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "WaitFrame",
[kotlinc] """
[kotlinc] Frame timing function.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #WaitFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrWaitFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameWaitInfo* frameWaitInfo,
[kotlinc] ? XrFrameState* frameState);
[kotlinc]
[kotlinc] Description
[kotlinc] #WaitFrame() throttles the application frame loop in order to synchronize application frame submissions with the display. #WaitFrame() returns a predicted display time for the next time that the runtime predicts a composited frame will be displayed. The runtime may affect this computation by changing the return values and throttling of #WaitFrame() in response to feedback from frame submission and completion times in #EndFrame(). An application must eventually match each #WaitFrame() call with one call to #BeginFrame(). A subsequent #WaitFrame() call must block until the previous frame has been begun with #BeginFrame() and must unblock independently of the corresponding call to #EndFrame(). When less than one frame interval has passed since the previous return from #WaitFrame(), the runtime should block until the beginning of the next frame interval. If more than one frame interval has passed since the last return from #WaitFrame(), the runtime may return immediately or block until the beginning of the next frame interval.
[kotlinc]
[kotlinc] In the case that an application has pipelined frame submissions, the application should compute the appropriate target display time using both the predicted display time and predicted display interval. The application should use the computed target display time when requesting space and view locations for rendering.
[kotlinc]
[kotlinc] The ##XrFrameState{@code ::predictedDisplayTime} returned by #WaitFrame() must be monotonically increasing.
[kotlinc]
[kotlinc] The runtime may dynamically adjust the start time of the frame interval relative to the display hardware?s refresh cycle to minimize graphics processor contention between the application and the compositor.
[kotlinc]
[kotlinc] #WaitFrame() must be callable from any thread, including a different thread than #BeginFrame()/#EndFrame() are being called from.
[kotlinc]
[kotlinc] Calling #WaitFrame() must be externally synchronized by the application, concurrent calls may result in undefined behavior.
[kotlinc]
[kotlinc] The runtime must return #ERROR_SESSION_NOT_RUNNING if the {@code session} is not running.
[kotlinc]
[kotlinc] Note
[kotlinc] The engine simulation should advance based on the display time. Every stage in the engine pipeline should use the exact same display time for one particular application-generated frame. An accurate and consistent display time across all stages and threads in the engine pipeline is important to avoid object motion judder. If the application has multiple pipeline stages, the application should pass its computed display time through its pipeline, as #WaitFrame() must be called only once per frame.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - If {@code frameWaitInfo} is not {@code NULL}, {@code frameWaitInfo} must be a pointer to a valid ##XrFrameWaitInfo structure
[kotlinc] - {@code frameState} must be a pointer to an ##XrFrameState structure
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to the {@code session} parameter by any other #WaitFrame() call must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameState, ##XrFrameWaitInfo, #BeginFrame(), #EndFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] nullable..XrFrameWaitInfo.const.p("frameWaitInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrFrameWaitInfo."),
[kotlinc] XrFrameState.p("frameState", "a pointer to a valid ##XrFrameState, an output parameter.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "BeginFrame",
[kotlinc] """
[kotlinc] Marks a frame.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #BeginFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrBeginFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameBeginInfo* frameBeginInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #BeginFrame() is called prior to the start of frame rendering. The application should still call #BeginFrame() but omit rendering work for the frame if ##XrFrameState{@code ::shouldRender} is #FALSE.
[kotlinc]
[kotlinc] Runtimes must not perform frame synchronization or throttling through the #BeginFrame() function and should instead do so through #WaitFrame().
[kotlinc]
[kotlinc] The runtime must return the error code #ERROR_CALL_ORDER_INVALID if there was no corresponding successful call to #WaitFrame().
[kotlinc]
[kotlinc] The runtime must return the success code #FRAME_DISCARDED if a prior #BeginFrame() has been called without an intervening call to #EndFrame().
[kotlinc]
[kotlinc] The runtime must return #ERROR_SESSION_NOT_RUNNING if the {@code session} is not running.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - If {@code frameBeginInfo} is not {@code NULL}, {@code frameBeginInfo} must be a pointer to a valid ##XrFrameBeginInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #FRAME_DISCARDED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameBeginInfo, #EndFrame(), #WaitFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] nullable..XrFrameBeginInfo.const.p("frameBeginInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrFrameBeginInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EndFrame",
[kotlinc] """
[kotlinc] Marks a frame.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EndFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEndFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameEndInfo* frameEndInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #EndFrame() may return immediately to the application. ##XrFrameEndInfo{@code ::displayTime} should be computed using values returned by #WaitFrame(). The runtime should be robust against variations in the timing of calls to #WaitFrame(), since a pipelined system may call #WaitFrame() on a separate thread from #BeginFrame() and #EndFrame() without any synchronization guarantees.
[kotlinc]
[kotlinc] Note
[kotlinc] An accurate predicted display time is very important to avoid black pull-in by reprojection and to reduce motion judder in case the runtime does not implement a translational reprojection. Reprojection should never display images before the display refresh period they were predicted for, even if they are completed early, because this will cause motion judder just the same. In other words, the better the predicted display time, the less latency experienced by the user.
[kotlinc]
[kotlinc]
[kotlinc] Every call to #EndFrame() must be preceded by a successful call to #BeginFrame(). Failure to do so must result in #ERROR_CALL_ORDER_INVALID being returned by #EndFrame(). ##XrFrameEndInfo may reference swapchains into which the application has rendered for this frame. From each {@code XrSwapchain} only one image index is implicitly referenced per frame, the one corresponding to the last call to #ReleaseSwapchainImage(). However, a specific swapchain (and by extension a specific swapchain image index) may be referenced in ##XrFrameEndInfo multiple times. This can be used for example to render a side by side image into a single swapchain image and referencing it twice with differing image rectangles in different layers.
[kotlinc]
[kotlinc] If no layers are provided then the display must be cleared.
[kotlinc]
[kotlinc] #ERROR_LAYER_INVALID must be returned if an unknown, unsupported layer type, or {@code NULL} pointer is passed as one of the ##XrFrameEndInfo::layers.
[kotlinc]
[kotlinc] #ERROR_LAYER_INVALID must be returned if a layer references a swapchain that has no released swapchain image.
[kotlinc]
[kotlinc] #ERROR_LAYER_LIMIT_EXCEEDED must be returned if ##XrFrameEndInfo::layerCount exceeds ##XrSystemGraphicsProperties::maxLayerCount or if the runtime is unable to composite the specified layers due to resource constraints.
[kotlinc]
[kotlinc] #ERROR_SWAPCHAIN_RECT_INVALID must be returned if ##XrFrameEndInfo::layers contains a composition layer which references pixels outside of the associated swapchain image or if negatively sized.
[kotlinc]
[kotlinc] #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED must be returned if ##XrFrameEndInfo::environmentBlendMode is not supported.
[kotlinc]
[kotlinc] #ERROR_SESSION_NOT_RUNNING must be returned if the {@code session} is not running.
[kotlinc]
[kotlinc] Note
[kotlinc] Applications should discard frames for which #EndFrame() returns a recoverable error over attempting to resubmit the frame with different frame parameters to provide a more consistent experience across different runtime implementations.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code frameEndInfo} must be a pointer to a valid ##XrFrameEndInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc] - #ERROR_SWAPCHAIN_RECT_INVALID
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc] - #ERROR_LAYER_LIMIT_EXCEEDED
[kotlinc] - #ERROR_LAYER_INVALID
[kotlinc] - #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameEndInfo, #BeginFrame(), #WaitFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] XrFrameEndInfo.const.p("frameEndInfo", "a pointer to a valid ##XrFrameEndInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "LocateViews",
[kotlinc] """
[kotlinc] Gets view and projection info.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #LocateViews() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrLocateViews(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrViewLocateInfo* viewLocateInfo,
[kotlinc] ? XrViewState* viewState,
[kotlinc] ? uint32_t viewCapacityInput,
[kotlinc] ? uint32_t* viewCountOutput,
[kotlinc] ? XrView* views);
[kotlinc]
[kotlinc] Description
[kotlinc] The #LocateViews() function returns the view and projection info for a particular display time. This time is typically the target display time for a given frame. Repeatedly calling #LocateViews() with the same time may not necessarily return the same result. Instead the prediction gets increasingly accurate as the function is called closer to the given time for which a prediction is made. This allows an application to get the predicted views as late as possible in its pipeline to get the least amount of latency and prediction error.
[kotlinc]
[kotlinc] #LocateViews() returns an array of ##XrView elements, one for each view of the specified view configuration type, along with an ##XrViewState containing additional state data shared across all views. The eye each view corresponds to is statically defined in {@code XrViewConfigurationType} in case the application wants to apply eye-specific rendering traits. The ##XrViewState and ##XrView member data may change on subsequent calls to #LocateViews(), and so applications must not assume it to be constant.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code viewLocateInfo} must be a pointer to a valid ##XrViewLocateInfo structure
[kotlinc] - {@code viewState} must be a pointer to an ##XrViewState structure
[kotlinc] - {@code viewCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewCapacityInput} is not 0, {@code views} must be a pointer to an array of {@code viewCapacityInput} ##XrView structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrView, ##XrViewLocateInfo, ##XrViewState
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the provided {@code XrSession}."),
[kotlinc] XrViewLocateInfo.const.p("viewLocateInfo", "a pointer to a valid ##XrViewLocateInfo structure."),
[kotlinc] XrViewState.p("viewState", "the output structure with the viewer state information."),
[kotlinc] AutoSize("views")..uint32_t("viewCapacityInput", "an input parameter which specifies the capacity of the {@code views} array. The required capacity must be same as defined by the corresponding {@code XrViewConfigurationType}."),
[kotlinc] Check(1)..uint32_t.p("viewCountOutput", "an output parameter which identifies the valid count of {@code views}."),
[kotlinc] nullable..XrView.p("views", "an array of ##XrView.")
[kotlinc] )
[kotlinc]
[kotlinc] // Semantic Paths
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StringToPath",
[kotlinc] """
[kotlinc] Converts a string to a semantic path.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StringToPath() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStringToPath(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const char* pathString,
[kotlinc] ? XrPath* path);
[kotlinc]
[kotlinc] Description
[kotlinc] #StringToPath() retrieves the {@code XrPath} value for a well-formed path string. If such a value had not yet been assigned by the runtime to the provided path string in this {@code XrInstance}, one must be assigned at this point. All calls to this function with the same {@code XrInstance} and path string must retrieve the same {@code XrPath} value. Upon failure, #StringToPath() must return an appropriate {@code XrResult}, and may set the output parameter to #NULL_PATH. See Path Atom Type for the conditions under which an error may be returned when this function is given a valid {@code XrInstance} and a well-formed path string.
[kotlinc]
[kotlinc] If the runtime?s resources are exhausted and it cannot create the path, a return value of #ERROR_PATH_COUNT_EXCEEDED must be returned. If the application specifies a string that is not a well-formed path string, #ERROR_PATH_FORMAT_INVALID must be returned.
[kotlinc]
[kotlinc] A return value of #SUCCESS from #StringToPath() may not necessarily imply that the runtime has a component or other source of data that will be accessible through that semantic path. It only means that the path string supplied was well-formed and that the retrieved {@code XrPath} maps to the given path string within and during the lifetime of the {@code XrInstance} given.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code pathString} must be a null-terminated UTF-8 string
[kotlinc] - {@code path} must be a pointer to an {@code XrPath} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_PATH_COUNT_EXCEEDED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #PathToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "an instance previously created."),
[kotlinc] charUTF8.const.p("pathString", "the path name string to retrieve the associated {@code XrPath} for."),
[kotlinc] Check(1)..XrPath.p("path", "the output parameter, which must point to an {@code XrPath}. Given a well-formed path name string, this will be populated with an opaque value that is constant for that path string during the lifetime of that instance.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "PathToString",
[kotlinc] """
[kotlinc] Converts a semantic path to a string.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrPathToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrPath path,
[kotlinc] ? uint32_t bufferCapacityInput,
[kotlinc] ? uint32_t* bufferCountOutput,
[kotlinc] ? char* buffer);
[kotlinc]
[kotlinc] Description
[kotlinc] #PathToString() retrieves the path name string associated with an {@code XrPath}, in the context of a given {@code XrInstance}, in the form of a {@code NULL} terminated string placed into a caller-allocated buffer. Since the mapping between a well-formed path name string and an {@code XrPath} is bijective, there will always be exactly one string for each valid {@code XrPath} value. This can be useful if the calling application receives an {@code XrPath} value that they had not previously retrieved via #StringToPath(). During the lifetime of the given {@code XrInstance}, the path name string retrieved by this function for a given valid {@code XrPath} will not change. For invalid paths, including #NULL_PATH, #ERROR_PATH_INVALID must be returned.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code bufferCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code bufferCapacityInput} is not 0, {@code buffer} must be a pointer to an array of {@code bufferCapacityInput} char values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #StringToPath()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "an instance previously created."),
[kotlinc] XrPath("path", "the valid {@code XrPath} value to retrieve the path string for."),
[kotlinc] AutoSize("buffer")..uint32_t("bufferCapacityInput", "the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("bufferCountOutput", "a pointer to the count of characters written (including the terminating '\\0'), or a pointer to the required capacity in the case that {@code bufferCapacityInput} is 0."),
[kotlinc] nullable..char.p("buffer", "a pointer to an application-allocated buffer that will be filled with the semantic path string. It can be {@code NULL} if {@code bufferCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Input
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateActionSet",
[kotlinc] """
[kotlinc] Creates an XrActionSet.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateActionSet() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateActionSet(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrActionSetCreateInfo* createInfo,
[kotlinc] ? XrActionSet* actionSet);
[kotlinc]
[kotlinc] Description
[kotlinc] The #CreateActionSet() function creates an action set and returns a handle to the created action set.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionSetCreateInfo structure
[kotlinc] - {@code actionSet} must be a pointer to an {@code XrActionSet} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_NAME_DUPLICATED
[kotlinc] - #ERROR_LOCALIZED_NAME_INVALID
[kotlinc] - #ERROR_LOCALIZED_NAME_DUPLICATED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionSetCreateInfo, #DestroyActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "a handle to an {@code XrInstance}."),
[kotlinc] XrActionSetCreateInfo.const.p("createInfo", "a pointer to a valid ##XrActionSetCreateInfo structure that defines the action set being created."),
[kotlinc] Check(1)..XrActionSet.p("actionSet", "a pointer to an {@code XrActionSet} where the created action set is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyActionSet",
[kotlinc] """
[kotlinc] Destroys an XrActionSet.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyActionSet() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyActionSet(
[kotlinc] ? XrActionSet actionSet);
[kotlinc]
[kotlinc] Description
[kotlinc] Action set handles can be destroyed by calling #DestroyActionSet(). When an action set handle is destroyed, all handles of actions in that action set are also destroyed.
[kotlinc]
[kotlinc] The implementation must not free underlying resources for the action set while there are other valid handles that refer to those resources. The implementation may release resources for an action set when all of the action spaces for actions in that action set have been destroyed. See Action Spaces Lifetime for details.
[kotlinc]
[kotlinc] Resources for all action sets in an instance must be freed when the instance containing those actions sets is destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code actionSet} must be a valid {@code XrActionSet} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code actionSet}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] XrActionSet("actionSet", "the action set to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateAction",
[kotlinc] """
[kotlinc] Creates an XrAction.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateAction(
[kotlinc] ? XrActionSet actionSet,
[kotlinc] ? const XrActionCreateInfo* createInfo,
[kotlinc] ? XrAction* action);
[kotlinc]
[kotlinc] Description
[kotlinc] #CreateAction() creates an action and returns its handle.
[kotlinc]
[kotlinc] If {@code actionSet} has been included in a call to #AttachSessionActionSets(), the implementation must return #ERROR_ACTIONSETS_ALREADY_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code actionSet} must be a valid {@code XrActionSet} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionCreateInfo structure
[kotlinc] - {@code action} must be a pointer to an {@code XrAction} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_NAME_DUPLICATED
[kotlinc] - #ERROR_LOCALIZED_NAME_INVALID
[kotlinc] - #ERROR_LOCALIZED_NAME_DUPLICATED
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, #DestroyAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrActionSet("actionSet", "a handle to an {@code XrActionSet}."),
[kotlinc] XrActionCreateInfo.const.p("createInfo", "a pointer to a valid ##XrActionCreateInfo structure that defines the action being created."),
[kotlinc] Check(1)..XrAction.p("action", "a pointer to an {@code XrAction} where the created action is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyAction",
[kotlinc] """
[kotlinc] Destroys an XrAction.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyAction(
[kotlinc] ? XrAction action);
[kotlinc]
[kotlinc] Description
[kotlinc] Action handles can be destroyed by calling #DestroyAction(). Handles for actions that are part of an action set are automatically destroyed when the action set?s handle is destroyed.
[kotlinc]
[kotlinc] The implementation must not destroy the underlying resources for an action when #DestroyAction() is called. Those resources are still used to make action spaces locatable and when processing action priority in #SyncActions(). Destroying the action handle removes the application?s access to these resources, but has no other change on actions.
[kotlinc]
[kotlinc] Resources for all actions in an instance must be freed when the instance containing those actions sets is destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code action} must be a valid {@code XrAction} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code action}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrAction("action", "the action to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "SuggestInteractionProfileBindings",
[kotlinc] """
[kotlinc] Sets the application-suggested bindings for the interaction profile.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #SuggestInteractionProfileBindings() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrSuggestInteractionProfileBindings(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrInteractionProfileSuggestedBinding* suggestedBindings);
[kotlinc]
[kotlinc] Description
[kotlinc] #SuggestInteractionProfileBindings() sets an interaction profile for which the application can provide default bindings. The application can call #SuggestInteractionProfileBindings() once per interaction profile that it supports.
[kotlinc]
[kotlinc] The application can provide any number of bindings for each action.
[kotlinc]
[kotlinc] If the application successfully calls #SuggestInteractionProfileBindings() more than once for an interaction profile, the runtime must discard the previous suggested bindings and replace them with the new suggested bindings for that profile.
[kotlinc]
[kotlinc] If the interaction profile path does not follow the structure defined in Interaction Profiles or suggested bindings contain paths that do not follow the format defined in Device input subpaths, the runtime must return #ERROR_PATH_UNSUPPORTED. If the interaction profile or input source for any of the suggested bindings does not exist in the allowlist defined in Interaction Profile Paths, the runtime must return #ERROR_PATH_UNSUPPORTED. A runtime must accept every valid binding in the allowlist though it is free to ignore any of them.
[kotlinc]
[kotlinc] If the action set for any action referenced in the {@code suggestedBindings} parameter has been included in a call to #AttachSessionActionSets(), the implementation must return #ERROR_ACTIONSETS_ALREADY_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code suggestedBindings} must be a pointer to a valid ##XrInteractionProfileSuggestedBinding structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInteractionProfileSuggestedBinding
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the {@code XrInstance} for which the application would like to set suggested bindings"),
[kotlinc] XrInteractionProfileSuggestedBinding.const.p("suggestedBindings", "the ##XrInteractionProfileSuggestedBinding that the application would like to set")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "AttachSessionActionSets",
[kotlinc] """
[kotlinc] Attaches action sets to a given session.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #AttachSessionActionSets() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrAttachSessionActionSets(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSessionActionSetsAttachInfo* attachInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #AttachSessionActionSets() attaches the {@code XrActionSet} handles in {@code attachInfo.actionSets} to the {@code session}. Action sets must be attached in order to be synchronized with #SyncActions().
[kotlinc]
[kotlinc] When an action set is attached to a session, that action set becomes immutable. See #CreateAction() and #SuggestInteractionProfileBindings() for details.
[kotlinc]
[kotlinc] After action sets are attached to a session, if any unattached actions are passed to functions for the same session, then for those functions the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED.
[kotlinc]
[kotlinc] The runtime must return #ERROR_ACTIONSETS_ALREADY_ATTACHED if #AttachSessionActionSets() is called more than once for a given {@code session}.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code attachInfo} must be a pointer to a valid ##XrSessionActionSetsAttachInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSessionActionSetsAttachInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to attach the action sets to."),
[kotlinc] XrSessionActionSetsAttachInfo.const.p("attachInfo", "the ##XrSessionActionSetsAttachInfo to provide information to attach action sets to the session.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetCurrentInteractionProfile",
[kotlinc] """
[kotlinc] Gets the current interaction profile for a top level user paths.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetCurrentInteractionProfile() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetCurrentInteractionProfile(
[kotlinc] ? XrSession session,
[kotlinc] ? XrPath topLevelUserPath,
[kotlinc] ? XrInteractionProfileState* interactionProfile);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetCurrentInteractionProfile() asks the runtime for the active interaction profiles for a top level user path.
[kotlinc]
[kotlinc] The runtime must return only interaction profiles for which the application has provided bindings with #SuggestInteractionProfileBindings() or #NULL_PATH. The runtime may return interaction profiles that do not represent physically present hardware, for example if the runtime is using a known interaction profile to bind to hardware that the application is not aware of. The runtime may return the last-known interaction profile in the event that no controllers are active.
[kotlinc]
[kotlinc] If #AttachSessionActionSets() has not yet been called for the {@code session}, the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED. If {@code topLevelUserPath} is not one of the device input subpaths described in section /user paths, the runtime must return #ERROR_PATH_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code interactionProfile} must be a pointer to an ##XrInteractionProfileState structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInteractionProfileState
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} for which the application would like to retrieve the current interaction profile."),
[kotlinc] XrPath("topLevelUserPath", "the top level user path the application would like to retrieve the interaction profile for."),
[kotlinc] XrInteractionProfileState.p("interactionProfile", "a pointer to an ##XrInteractionProfileState structure to receive the current interaction profile.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateBoolean",
[kotlinc] """
[kotlinc] Gets boolean action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateBoolean() retrieves the current state of a boolean action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateBoolean(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateBoolean* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateBoolean structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateBoolean, ##XrActionStateGetInfo, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateBoolean.p("state", "a pointer to a valid ##XrActionStateBoolean into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateFloat",
[kotlinc] """
[kotlinc] Gets a floating point action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateFloat() retrieves the current state of a floating-point action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateFloat(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateFloat* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateFloat structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateFloat, ##XrActionStateGetInfo, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateFloat.p("state", "a pointer to a valid ##XrActionStateFloat into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateVector2f",
[kotlinc] """
[kotlinc] Gets 2D float vector action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateVector2f() retrieves the current state of a two-dimensional vector action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateVector2f(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateVector2f* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateVector2f structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateGetInfo, ##XrActionStateVector2f, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateVector2f.p("state", "a pointer to a valid ##XrActionStateVector2f into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStatePose",
[kotlinc] """
[kotlinc] Gets metadata from a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetActionStatePose() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStatePose(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStatePose* state);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetActionStatePose() returns information about the binding and active state for the specified action. To determine the pose of this action at a historical or predicted time, the application can create an action space using #CreateActionSpace(). Then, after each sync, the application can locate the pose of this action space within a base space using #LocateSpace().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStatePose structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateGetInfo, ##XrActionStatePose, #CreateAction(), #CreateActionSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStatePose.p("state", "a pointer to a valid ##XrActionStatePose into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "SyncActions",
[kotlinc] """
[kotlinc] Updates the current state of input actions.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #SyncActions() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrSyncActions(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionsSyncInfo* syncInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #SyncActions() updates the current state of input actions. Repeated input action state queries between subsequent synchronization calls must return the same values. The {@code XrActionSet} structures referenced in the {@code syncInfo.activeActionSets} must have been previously attached to the session via #AttachSessionActionSets(). If any action sets not attached to this session are passed to #SyncActions() it must return #ERROR_ACTIONSET_NOT_ATTACHED. Subsets of the bound action sets can be synchronized in order to control which actions are seen as active.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED, and all action states in the session must be inactive.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code syncInfo} must be a pointer to a valid ##XrActionsSyncInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionsSyncInfo, ##XrActiveActionSet
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the {@code XrSession} that all provided action set handles belong to."),
[kotlinc] XrActionsSyncInfo.const.p("syncInfo", "an ##XrActionsSyncInfo providing information to synchronize action states.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateBoundSourcesForAction",
[kotlinc] """
[kotlinc] Queries the bound input sources for an action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateBoundSourcesForAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateBoundSourcesForAction(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrBoundSourcesForActionEnumerateInfo* enumerateInfo,
[kotlinc] ? uint32_t sourceCapacityInput,
[kotlinc] ? uint32_t* sourceCountOutput,
[kotlinc] ? XrPath* sources);
[kotlinc]
[kotlinc] Description
[kotlinc] If an action is unbound, #EnumerateBoundSourcesForAction() must assign 0 to the value pointed-to by {@code sourceCountOutput} and not modify the array.
[kotlinc]
[kotlinc] #EnumerateBoundSourcesForAction() must return #ERROR_ACTIONSET_NOT_ATTACHED if passed an action in an action set never attached to the session with #AttachSessionActionSets().
[kotlinc]
[kotlinc] As bindings for actions do not change between calls to #SyncActions(), #EnumerateBoundSourcesForAction() must enumerate the same set of bound sources, or absence of bound sources, for a given query (defined by the {@code enumerateInfo} parameter) between any two calls to #SyncActions().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code enumerateInfo} must be a pointer to a valid ##XrBoundSourcesForActionEnumerateInfo structure
[kotlinc] - {@code sourceCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code sourceCapacityInput} is not 0, {@code sources} must be a pointer to an array of {@code sourceCapacityInput} {@code XrPath} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrBoundSourcesForActionEnumerateInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} being queried."),
[kotlinc] XrBoundSourcesForActionEnumerateInfo.const.p("enumerateInfo", "an ##XrBoundSourcesForActionEnumerateInfo providing the query information."),
[kotlinc] AutoSize("sources")..uint32_t("sourceCapacityInput", "the capacity of the array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("sourceCountOutput", "a pointer to the count of sources, or a pointer to the required capacity in the case that {@code sourceCapacityInput} is 0."),
[kotlinc] nullable..XrPath.p("sources", "a pointer to an application-allocated array that will be filled with the {@code XrPath} values for all sources. It can be {@code NULL} if {@code sourceCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetInputSourceLocalizedName",
[kotlinc] """
[kotlinc] Gets a localized source name.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetInputSourceLocalizedName() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInputSourceLocalizedName(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrInputSourceLocalizedNameGetInfo* getInfo,
[kotlinc] ? uint32_t bufferCapacityInput,
[kotlinc] ? uint32_t* bufferCountOutput,
[kotlinc] ? char* buffer);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetInputSourceLocalizedName() returns a string for the input source in the current system locale.
[kotlinc]
[kotlinc] If #AttachSessionActionSets() has not yet been called for the session, the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrInputSourceLocalizedNameGetInfo structure
[kotlinc] - {@code bufferCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code bufferCapacityInput} is not 0, {@code buffer} must be a pointer to an array of {@code bufferCapacityInput} char values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInputSourceLocalizedNameGetInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the {@code XrSession} associated with the action that reported this source."),
[kotlinc] XrInputSourceLocalizedNameGetInfo.const.p("getInfo", "an ##XrInputSourceLocalizedNameGetInfo providing the query information."),
[kotlinc] AutoSize("buffer")..uint32_t("bufferCapacityInput", "the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("bufferCountOutput", "a pointer to the count of name characters written (including the terminating {@code \\0}), or a pointer to the required capacity in the case that {@code bufferCapacityInput} is 0."),
[kotlinc] nullable..char.p("buffer", "a pointer to an application-allocated buffer that will be filled with the source name. It can be {@code NULL} if {@code bufferCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Haptics
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ApplyHapticFeedback",
[kotlinc] """
[kotlinc] Apply haptic feedback.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #ApplyHapticFeedback() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrApplyHapticFeedback(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrHapticActionInfo* hapticActionInfo,
[kotlinc] ? const XrHapticBaseHeader* hapticFeedback);
[kotlinc]
[kotlinc] Description
[kotlinc] Triggers a haptic event through the specified action of type #TYPE_HAPTIC_VIBRATION. The runtime should deliver this request to the appropriate device, but exactly which device, if any, this event is sent to is up to the runtime to decide. If an appropriate device is unavailable the runtime may ignore this request for haptic feedback.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED, and not trigger a haptic event.
[kotlinc]
[kotlinc] If another haptic event from this session is currently happening on the device bound to this action, the runtime must interrupt that other event and replace it with the new one.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code hapticActionInfo} must be a pointer to a valid ##XrHapticActionInfo structure
[kotlinc] - {@code hapticFeedback} must be a pointer to a valid ##XrHapticBaseHeader-based structure. See also: ##XrHapticVibration
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrHapticActionInfo, ##XrHapticBaseHeader, ##XrHapticVibration, #StopHapticFeedback()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to start outputting to."),
[kotlinc] XrHapticActionInfo.const.p("hapticActionInfo", "a pointer to ##XrHapticActionInfo to provide action and subaction paths information."),
[kotlinc] XrHapticBaseHeader.const.p("hapticFeedback", "a pointer to a haptic event structure which starts with an ##XrHapticBaseHeader.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StopHapticFeedback",
[kotlinc] """
[kotlinc] Stop haptic feedback.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StopHapticFeedback() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStopHapticFeedback(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrHapticActionInfo* hapticActionInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] If a haptic event from this {@code XrAction} is in progress, when this function is called the runtime must stop that event.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code hapticActionInfo} must be a pointer to a valid ##XrHapticActionInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrHapticActionInfo, #ApplyHapticFeedback()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to stop outputting to."),
[kotlinc] XrHapticActionInfo.const.p("hapticActionInfo", "a pointer to an ##XrHapticActionInfo to provide action and subaction path information.")
[kotlinc] )
[kotlinc]
[kotlinc] }
[kotlinc] org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments: Exception while analyzing expression at (11,12) in /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openxr/src/templates/kotlin/openxr/templates/XR10.kt
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.logOrThrowException(ExpressionTypingVisitorDispatcher.java:246)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:224)
[kotlinc] at org.jetbrains.kotlin.util.ReenterableCounter.countTime(PerformanceCounter.kt:161)
[kotlinc] at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:105)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:164)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:134)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:146)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getTypeInfo(ExpressionTypingServices.java:120)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getTypeInfo(ExpressionTypingServices.java:95)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getType(ExpressionTypingServices.java:137)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.safeGetType(ExpressionTypingServices.java:80)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver.resolveInitializerType(VariableTypeAndInitializerResolver.kt:183)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver.access$resolveInitializerType(VariableTypeAndInitializerResolver.kt:27)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver$resolveTypeNullable$1.invoke(VariableTypeAndInitializerResolver.kt:92)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver$resolveTypeNullable$1.invoke(VariableTypeAndInitializerResolver.kt:85)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
[kotlinc] at org.jetbrains.kotlin.types.DeferredType.getDelegate(DeferredType.java:106)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.computeDeferredType(BodyResolver.java:1080)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveProperty(BodyResolver.java:798)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolvePropertyDeclarationBodies(BodyResolver.java:856)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveBehaviorDeclarationBodies(BodyResolver.java:122)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveBodies(BodyResolver.java:255)
[kotlinc] at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:227)
[kotlinc] at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:58)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:130)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:99)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:301)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:55)
[kotlinc] at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:113)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:292)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:102)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:60)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:172)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:54)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:93)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:71)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execFullPathsInMessages(CLICompiler.kt:57)
[kotlinc] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[kotlinc] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[kotlinc] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[kotlinc] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[kotlinc] at org.jetbrains.kotlin.ant.KotlinCompilerBaseTask.execute(KotlinCompilerBaseTask.kt:92)
[kotlinc] at org.jetbrains.kotlin.ant.Kotlin2JvmTask.execute(Kotlin2JvmTask.kt:85)
[kotlinc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
[kotlinc] at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[kotlinc] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[kotlinc] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[kotlinc] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
[kotlinc] at org.apache.tools.ant.Task.perform(Task.java:350)
[kotlinc] at org.apache.tools.ant.Target.execute(Target.java:449)
[kotlinc] at org.apache.tools.ant.Target.performTasks(Target.java:470)
[kotlinc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
[kotlinc] at org.apache.tools.ant.Project.executeTarget(Project.java:1374)
[kotlinc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[kotlinc] at org.apache.tools.ant.Project.executeTargets(Project.java:1264)
[kotlinc] at org.apache.tools.ant.Main.runBuild(Main.java:818)
[kotlinc] at org.apache.tools.ant.Main.startAnt(Main.java:223)
[kotlinc] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
[kotlinc] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
[kotlinc] Caused by: java.lang.OutOfMemoryError: Java heap space
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.rehash(OpenAddressLinearProbingHashTable.kt:93)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.put(OpenAddressLinearProbingHashTable.kt:83)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.put(SlicedMapImpl.java:79)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingTraceContext.record(BindingTraceContext.java:137)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace.record(CliTrace.kt:64)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace.record(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils.lambda$addOwnDataTo$0(BindingContextUtils.java:215)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils$$Lambda$503/0x00000008007f5c40.invoke(Unknown Source)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.lambda$forEach$0(SlicedMapImpl.java:116)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl$$Lambda$504/0x00000008007f5040.accept(Unknown Source)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.forEach(OpenAddressLinearProbingHashTable.kt:123)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.forEach(SlicedMapImpl.java:110)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils.addOwnDataTo(BindingContextUtils.java:213)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo(DelegatingBindingTrace.kt:145)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo$default(DelegatingBindingTrace.kt:144)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo(DelegatingBindingTrace.kt)
[kotlinc] at org.jetbrains.kotlin.resolve.TemporaryBindingTrace.commit(TemporaryBindingTrace.java:47)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.context.TemporaryTraceAndCache.commit(TemporaryTraceAndCache.java:36)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getCallExpressionTypeInfoWithoutFinalTypeCheck(CallExpressionResolver.kt:218)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getUnsafeSelectorTypeInfo(CallExpressionResolver.kt:334)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getSafeOrUnsafeSelectorTypeInfo(CallExpressionResolver.kt:384)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getQualifiedExpressionTypeInfo(CallExpressionResolver.kt:481)
[kotlinc] at org.jetbrains.kotlin.types.expressions.BasicExpressionTypingVisitor.visitQualifiedExpression(BasicExpressionTypingVisitor.java:712)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.visitQualifiedExpression(ExpressionTypingVisitorDispatcher.java:383)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher$ForDeclarations.visitQualifiedExpression(ExpressionTypingVisitorDispatcher.java:46)
[kotlinc] at org.jetbrains.kotlin.psi.KtVisitor.visitDotQualifiedExpression(KtVisitor.java:306)
[kotlinc] at org.jetbrains.kotlin.psi.KtDotQualifiedExpression.accept(KtDotQualifiedExpression.kt:32)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:175)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher$$Lambda$495/0x00000008007f0440.invoke(Unknown Source)
[kotlinc] exception: org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression at (11,12) in /usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/modules/lwjgl/openxr/src/templates/kotlin/openxr/templates/XR10.kt
[kotlinc]
[kotlinc] Attachments:
[kotlinc] expression.kt
[kotlinc] "XR10".nativeClass(Module.OPENXR, "XR10", prefix = "XR", binding = XR_BINDING_INSTANCE) {
[kotlinc] documentation =
[kotlinc] """
[kotlinc] The core OpenXR 1.0 functionality.
[kotlinc] """
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrResult - Result codes
[kotlinc]
[kotlinc] Description
[kotlinc] All return codes in the API are reported via {@code XrResult} return values.
[kotlinc]
[kotlinc] Some common suffixes shared across many of the return codes are defined below:
[kotlinc]
[kotlinc]
[kotlinc] - {@code _INVALID}: The specified handle, atom or value is formatted incorrectly, or the specified handle was never created or has been destroyed.
[kotlinc] - {@code _UNSUPPORTED}: The specified handle, atom, enumerant or value is formatted correctly but cannot be used for the lifetime of this function?s parent handle.
[kotlinc] - {@code _UNAVAILABLE}: The specified handle, atom, enumerant or value is supported by this function?s parent handle but not at this moment.
[kotlinc]
[kotlinc]
[kotlinc] Success Codes
[kotlinc]
[kotlinc] Enum | Description |
[kotlinc]
[kotlinc] #SUCCESS | Function successfully completed. |
[kotlinc] #TIMEOUT_EXPIRED | The specified timeout time occurred before the operation could complete. |
[kotlinc] #SESSION_LOSS_PENDING | The session will be lost soon. |
[kotlinc] #EVENT_UNAVAILABLE | No event was available. |
[kotlinc] #SPACE_BOUNDS_UNAVAILABLE | The space?s bounds are not known at the moment. |
[kotlinc] #SESSION_NOT_FOCUSED | The session is not in the focused state. |
[kotlinc] #FRAME_DISCARDED | A frame has been discarded from composition. |
[kotlinc] #RENDER_MODEL_UNAVAILABLE_FB | The model is unavailable. (Added by the {@link FBRenderModel XR_FB_render_model} extension) |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] Error Codes
[kotlinc]
[kotlinc] Enum | Description |
[kotlinc]
[kotlinc] #ERROR_VALIDATION_FAILURE | The function usage was invalid in some way. |
[kotlinc] #ERROR_RUNTIME_FAILURE | The runtime failed to handle the function in an unexpected way that is not covered by another error result. |
[kotlinc] #ERROR_OUT_OF_MEMORY | A memory allocation has failed. |
[kotlinc] #ERROR_API_VERSION_UNSUPPORTED | The runtime does not support the requested API version. |
[kotlinc] #ERROR_INITIALIZATION_FAILED | Initialization of object could not be completed. |
[kotlinc] #ERROR_FUNCTION_UNSUPPORTED | The requested function was not found or is otherwise unsupported. |
[kotlinc] #ERROR_FEATURE_UNSUPPORTED | The requested feature is not supported. |
[kotlinc] #ERROR_EXTENSION_NOT_PRESENT | A requested extension is not supported. |
[kotlinc] #ERROR_LIMIT_REACHED | The runtime supports no more of the requested resource. |
[kotlinc] #ERROR_SIZE_INSUFFICIENT | The supplied size was smaller than required. |
[kotlinc] #ERROR_HANDLE_INVALID | A supplied object handle was invalid. |
[kotlinc] #ERROR_INSTANCE_LOST | The {@code XrInstance} was lost or could not be found. It will need to be destroyed and optionally recreated. |
[kotlinc] #ERROR_SESSION_RUNNING | The session is already running. |
[kotlinc] #ERROR_SESSION_NOT_RUNNING | The session is not yet running. |
[kotlinc] #ERROR_SESSION_LOST | The {@code XrSession} was lost. It will need to be destroyed and optionally recreated. |
[kotlinc] #ERROR_SYSTEM_INVALID | The provided {@code XrSystemId} was invalid. |
[kotlinc] #ERROR_PATH_INVALID | The provided {@code XrPath} was not valid. |
[kotlinc] #ERROR_PATH_COUNT_EXCEEDED | The maximum number of supported semantic paths has been reached. |
[kotlinc] #ERROR_PATH_FORMAT_INVALID | The semantic path character format is invalid. |
[kotlinc] #ERROR_PATH_UNSUPPORTED | The semantic path is unsupported. |
[kotlinc] #ERROR_LAYER_INVALID | The layer was NULL or otherwise invalid. |
[kotlinc] #ERROR_LAYER_LIMIT_EXCEEDED | The number of specified layers is greater than the supported number. |
[kotlinc] #ERROR_SWAPCHAIN_RECT_INVALID | The image rect was negatively sized or otherwise invalid. |
[kotlinc] #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED | The image format is not supported by the runtime or platform. |
[kotlinc] #ERROR_ACTION_TYPE_MISMATCH | The API used to retrieve an action?s state does not match the action?s type. |
[kotlinc] #ERROR_SESSION_NOT_READY | The session is not in the ready state. |
[kotlinc] #ERROR_SESSION_NOT_STOPPING | The session is not in the stopping state. |
[kotlinc] #ERROR_TIME_INVALID | The provided {@code XrTime} was zero, negative, or out of range. |
[kotlinc] #ERROR_REFERENCE_SPACE_UNSUPPORTED | The specified reference space is not supported by the runtime or system. |
[kotlinc] #ERROR_FILE_ACCESS_ERROR | The file could not be accessed. |
[kotlinc] #ERROR_FILE_CONTENTS_INVALID | The file?s contents were invalid. |
[kotlinc] #ERROR_FORM_FACTOR_UNSUPPORTED | The specified form factor is not supported by the current runtime or platform. |
[kotlinc] #ERROR_FORM_FACTOR_UNAVAILABLE | The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off. |
[kotlinc] #ERROR_API_LAYER_NOT_PRESENT | A requested API layer is not present or could not be loaded. |
[kotlinc] #ERROR_CALL_ORDER_INVALID | The call was made without having made a previously required call. |
[kotlinc] #ERROR_GRAPHICS_DEVICE_INVALID | The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements. |
[kotlinc] #ERROR_POSE_INVALID | The supplied pose was invalid with respect to the requirements. |
[kotlinc] #ERROR_INDEX_OUT_OF_RANGE | The supplied index was outside the range of valid indices. |
[kotlinc] #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED | The specified view configuration type is not supported by the runtime or platform. |
[kotlinc] #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED | The specified environment blend mode is not supported by the runtime or platform. |
[kotlinc] #ERROR_NAME_DUPLICATED | The name provided was a duplicate of an already-existing resource. |
[kotlinc] #ERROR_NAME_INVALID | The name provided was invalid. |
[kotlinc] #ERROR_ACTIONSET_NOT_ATTACHED | A referenced action set is not attached to the session. |
[kotlinc] #ERROR_ACTIONSETS_ALREADY_ATTACHED | The session already has attached action sets. |
[kotlinc] #ERROR_LOCALIZED_NAME_DUPLICATED | The localized name provided was a duplicate of an already-existing resource. |
[kotlinc] #ERROR_LOCALIZED_NAME_INVALID | The localized name provided was invalid. |
[kotlinc] #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING | The {@code xrGetGraphicsRequirements}* call was not made before calling {@code xrCreateSession}. |
[kotlinc] #ERROR_RUNTIME_UNAVAILABLE | The loader was unable to find or load a runtime. |
[kotlinc] #ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT | Spatial anchor could not be created at that location. (Added by the {@link MSFTSpatialAnchor XR_MSFT_spatial_anchor} extension) |
[kotlinc] #ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT | The secondary view configuration was not enabled when creating the session. (Added by the {@link MSFTSecondaryViewConfiguration XR_MSFT_secondary_view_configuration} extension) |
[kotlinc] #ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT | The controller model key is invalid. (Added by the {@link MSFTControllerModel XR_MSFT_controller_model} extension) |
[kotlinc] #ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT | The reprojection mode is not supported. (Added by the {@link MSFTCompositionLayerReprojection XR_MSFT_composition_layer_reprojection} extension) |
[kotlinc] #ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT | Compute new scene not completed. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPONENT_ID_INVALID_MSFT | Scene component id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT | Scene component type mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT | Scene mesh buffer id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT | Scene compute feature incompatible. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT | Scene compute consistency mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension) |
[kotlinc] #ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB | The display refresh rate is not supported by the platform. (Added by the {@link FBDisplayRefreshRate XR_FB_display_refresh_rate} extension) |
[kotlinc] #ERROR_COLOR_SPACE_UNSUPPORTED_FB | The color space is not supported by the runtime. (Added by the {@link FBColorSpace XR_FB_color_space} extension) |
[kotlinc] #ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB | The object state is unexpected for the issued command. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB | Trying to create an MR feature when one was already created and only one instance is allowed. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB | Requested functionality requires a feature to be created first. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_NOT_PERMITTED_PASSTHROUGH_FB | Requested functionality is not permitted - application is not allowed to perform the requested operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB | There weren?t sufficient resources available to perform an operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_UNKNOWN_PASSTHROUGH_FB | Unknown Passthrough error (no further details provided). (Added by the {@link FBPassthrough XR_FB_passthrough} extension) |
[kotlinc] #ERROR_RENDER_MODEL_KEY_INVALID_FB | The model key is invalid. (Added by the {@link FBRenderModel XR_FB_render_model} extension) |
[kotlinc] #ERROR_MARKER_NOT_TRACKED_VARJO | Marker tracking is disabled or the specified marker is not currently tracked. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension) |
[kotlinc] #ERROR_MARKER_ID_INVALID_VARJO | The specified marker ID is not valid. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension) |
[kotlinc] #ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT | A spatial anchor was not found associated with the spatial anchor name provided (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension) |
[kotlinc] #ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT | The spatial anchor name provided was not valid (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension) |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #ResultToString()
[kotlinc] """,
[kotlinc]
[kotlinc] "SUCCESS".."0",
[kotlinc] "TIMEOUT_EXPIRED".."1",
[kotlinc] "SESSION_LOSS_PENDING".."3",
[kotlinc] "EVENT_UNAVAILABLE".."4",
[kotlinc] "SPACE_BOUNDS_UNAVAILABLE".."7",
[kotlinc] "SESSION_NOT_FOCUSED".."8",
[kotlinc] "FRAME_DISCARDED".."9",
[kotlinc] "ERROR_VALIDATION_FAILURE".."-1",
[kotlinc] "ERROR_RUNTIME_FAILURE".."-2",
[kotlinc] "ERROR_OUT_OF_MEMORY".."-3",
[kotlinc] "ERROR_API_VERSION_UNSUPPORTED".."-4",
[kotlinc] "ERROR_INITIALIZATION_FAILED".."-6",
[kotlinc] "ERROR_FUNCTION_UNSUPPORTED".."-7",
[kotlinc] "ERROR_FEATURE_UNSUPPORTED".."-8",
[kotlinc] "ERROR_EXTENSION_NOT_PRESENT".."-9",
[kotlinc] "ERROR_LIMIT_REACHED".."-10",
[kotlinc] "ERROR_SIZE_INSUFFICIENT".."-11",
[kotlinc] "ERROR_HANDLE_INVALID".."-12",
[kotlinc] "ERROR_INSTANCE_LOST".."-13",
[kotlinc] "ERROR_SESSION_RUNNING".."-14",
[kotlinc] "ERROR_SESSION_NOT_RUNNING".."-16",
[kotlinc] "ERROR_SESSION_LOST".."-17",
[kotlinc] "ERROR_SYSTEM_INVALID".."-18",
[kotlinc] "ERROR_PATH_INVALID".."-19",
[kotlinc] "ERROR_PATH_COUNT_EXCEEDED".."-20",
[kotlinc] "ERROR_PATH_FORMAT_INVALID".."-21",
[kotlinc] "ERROR_PATH_UNSUPPORTED".."-22",
[kotlinc] "ERROR_LAYER_INVALID".."-23",
[kotlinc] "ERROR_LAYER_LIMIT_EXCEEDED".."-24",
[kotlinc] "ERROR_SWAPCHAIN_RECT_INVALID".."-25",
[kotlinc] "ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED".."-26",
[kotlinc] "ERROR_ACTION_TYPE_MISMATCH".."-27",
[kotlinc] "ERROR_SESSION_NOT_READY".."-28",
[kotlinc] "ERROR_SESSION_NOT_STOPPING".."-29",
[kotlinc] "ERROR_TIME_INVALID".."-30",
[kotlinc] "ERROR_REFERENCE_SPACE_UNSUPPORTED".."-31",
[kotlinc] "ERROR_FILE_ACCESS_ERROR".."-32",
[kotlinc] "ERROR_FILE_CONTENTS_INVALID".."-33",
[kotlinc] "ERROR_FORM_FACTOR_UNSUPPORTED".."-34",
[kotlinc] "ERROR_FORM_FACTOR_UNAVAILABLE".."-35",
[kotlinc] "ERROR_API_LAYER_NOT_PRESENT".."-36",
[kotlinc] "ERROR_CALL_ORDER_INVALID".."-37",
[kotlinc] "ERROR_GRAPHICS_DEVICE_INVALID".."-38",
[kotlinc] "ERROR_POSE_INVALID".."-39",
[kotlinc] "ERROR_INDEX_OUT_OF_RANGE".."-40",
[kotlinc] "ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED".."-41",
[kotlinc] "ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED".."-42",
[kotlinc] "ERROR_NAME_DUPLICATED".."-44",
[kotlinc] "ERROR_NAME_INVALID".."-45",
[kotlinc] "ERROR_ACTIONSET_NOT_ATTACHED".."-46",
[kotlinc] "ERROR_ACTIONSETS_ALREADY_ATTACHED".."-47",
[kotlinc] "ERROR_LOCALIZED_NAME_DUPLICATED".."-48",
[kotlinc] "ERROR_LOCALIZED_NAME_INVALID".."-49",
[kotlinc] "ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING".."-50",
[kotlinc] "ERROR_RUNTIME_UNAVAILABLE".."-51"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrStructureType - Values for type members of structs
[kotlinc]
[kotlinc] Description
[kotlinc] Most structures containing {@code type} members have a value of {@code type} matching the type of the structure, as described more fully in Valid Usage for Structure Types.
[kotlinc]
[kotlinc] Note that all extension enums begin at the extension enum base of 110
(base 10). Each extension is assigned a block of 1000 enums, starting at the enum base and arranged by the extension?s index.
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, ##XrActionSetCreateInfo, ##XrActionSpaceCreateInfo, ##XrActionStateBoolean, ##XrActionStateFloat, ##XrActionStateGetInfo, ##XrActionStatePose, ##XrActionStateVector2f, ##XrActionsSyncInfo, ##XrApiLayerProperties, ##XrBaseInStructure, ##XrBaseOutStructure, ##XrBindingModificationBaseHeaderKHR, ##XrBindingModificationsKHR, ##XrBoundSourcesForActionEnumerateInfo, ##XrCompositionLayerAlphaBlendFB, ##XrCompositionLayerBaseHeader, ##XrCompositionLayerColorScaleBiasKHR, ##XrCompositionLayerCubeKHR, ##XrCompositionLayerCylinderKHR, ##XrCompositionLayerDepthInfoKHR, ##XrCompositionLayerDepthTestVARJO, ##XrCompositionLayerEquirect2KHR, ##XrCompositionLayerEquirectKHR, ##XrCompositionLayerImageLayoutFB, ##XrCompositionLayerPassthroughFB, ##XrCompositionLayerProjection, ##XrCompositionLayerProjectionView, ##XrCompositionLayerQuad, ##XrCompositionLayerReprojectionInfoMSFT, ##XrCompositionLayerReprojectionPlaneOverrideMSFT, ##XrCompositionLayerSecureContentFB, ##XrCompositionLayerSpaceWarpInfoFB, ##XrControllerModelKeyStateMSFT, ##XrControllerModelNodePropertiesMSFT, ##XrControllerModelNodeStateMSFT, ##XrControllerModelPropertiesMSFT, ##XrControllerModelStateMSFT, ##XrDebugUtilsLabelEXT, ##XrDebugUtilsMessengerCallbackDataEXT, ##XrDebugUtilsMessengerCreateInfoEXT, ##XrDebugUtilsObjectNameInfoEXT, ##XrDigitalLensControlALMALENCE, ##XrEventDataBaseHeader, ##XrEventDataBuffer, ##XrEventDataDisplayRefreshRateChangedFB, ##XrEventDataEventsLost, ##XrEventDataInstanceLossPending, ##XrEventDataInteractionProfileChanged, ##XrEventDataMainSessionVisibilityChangedEXTX, ##XrEventDataMarkerTrackingUpdateVARJO, ##XrEventDataPassthroughStateChangedFB, ##XrEventDataPerfSettingsEXT, ##XrEventDataReferenceSpaceChangePending, ##XrEventDataSessionStateChanged, ##XrEventDataVisibilityMaskChangedKHR, ##XrEventDataViveTrackerConnectedHTCX, ##XrExtensionProperties, ##XrEyeGazeSampleTimeEXT, ##XrFacialExpressionsHTC, ##XrFacialTrackerCreateInfoHTC, ##XrFoveatedViewConfigurationViewVARJO, ##XrFoveationLevelProfileCreateInfoFB, ##XrFoveationProfileCreateInfoFB, ##XrFrameBeginInfo, ##XrFrameEndInfo, ##XrFrameState, ##XrFrameWaitInfo, ##XrGeometryInstanceCreateInfoFB, ##XrGeometryInstanceTransformFB, ##XrGraphicsBindingEGLMNDX, ##XrGraphicsBindingOpenGLWaylandKHR, ##XrGraphicsBindingOpenGLWin32KHR, ##XrGraphicsBindingOpenGLXcbKHR, ##XrGraphicsBindingOpenGLXlibKHR, ##XrGraphicsBindingVulkanKHR, ##XrGraphicsRequirementsOpenGLESKHR, ##XrGraphicsRequirementsOpenGLKHR, ##XrGraphicsRequirementsVulkanKHR, ##XrHandJointLocationsEXT, ##XrHandJointVelocitiesEXT, ##XrHandJointsLocateInfoEXT, ##XrHandJointsMotionRangeInfoEXT, ##XrHandMeshMSFT, ##XrHandMeshSpaceCreateInfoMSFT, ##XrHandMeshUpdateInfoMSFT, ##XrHandPoseTypeInfoMSFT, ##XrHandTrackerCreateInfoEXT, ##XrHandTrackingAimStateFB, ##XrHandTrackingCapsulesStateFB, ##XrHandTrackingMeshFB, ##XrHandTrackingScaleFB, ##XrHapticActionInfo, ##XrHapticBaseHeader, ##XrHapticVibration, ##XrHolographicWindowAttachmentMSFT, ##XrInputSourceLocalizedNameGetInfo, ##XrInstanceCreateInfo, ##XrInstanceProperties, ##XrInteractionProfileAnalogThresholdVALVE, ##XrInteractionProfileState, ##XrInteractionProfileSuggestedBinding, ##XrKeyboardSpaceCreateInfoFB, ##XrKeyboardTrackingQueryFB, ##XrLoaderInitInfoBaseHeaderKHR, ##XrMarkerSpaceCreateInfoVARJO, ##XrNewSceneComputeInfoMSFT, ##XrPassthroughColorMapMonoToMonoFB, ##XrPassthroughColorMapMonoToRgbaFB, ##XrPassthroughCreateInfoFB, ##XrPassthroughKeyboardHandsIntensityFB, ##XrPassthroughLayerCreateInfoFB, ##XrPassthroughStyleFB, ##XrReferenceSpaceCreateInfo, ##XrRenderModelBufferFB, ##XrRenderModelLoadInfoFB, ##XrRenderModelPathInfoFB, ##XrRenderModelPropertiesFB, ##XrSceneComponentLocationsMSFT, ##XrSceneComponentParentFilterInfoMSFT, ##XrSceneComponentsGetInfoMSFT, ##XrSceneComponentsLocateInfoMSFT, ##XrSceneComponentsMSFT, ##XrSceneCreateInfoMSFT, ##XrSceneDeserializeInfoMSFT, ##XrSceneMeshBuffersGetInfoMSFT, ##XrSceneMeshBuffersMSFT, ##XrSceneMeshIndicesUint16MSFT, ##XrSceneMeshIndicesUint32MSFT, ##XrSceneMeshVertexBufferMSFT, ##XrSceneMeshesMSFT, ##XrSceneObjectTypesFilterInfoMSFT, ##XrSceneObjectsMSFT, ##XrSceneObserverCreateInfoMSFT, ##XrScenePlaneAlignmentFilterInfoMSFT, ##XrScenePlanesMSFT, ##XrSecondaryViewConfigurationFrameEndInfoMSFT, ##XrSecondaryViewConfigurationFrameStateMSFT, ##XrSecondaryViewConfigurationLayerInfoMSFT, ##XrSecondaryViewConfigurationSessionBeginInfoMSFT, ##XrSecondaryViewConfigurationStateMSFT, ##XrSecondaryViewConfigurationSwapchainCreateInfoMSFT, ##XrSerializedSceneFragmentDataGetInfoMSFT, ##XrSessionActionSetsAttachInfo, ##XrSessionBeginInfo, ##XrSessionCreateInfo, ##XrSessionCreateInfoOverlayEXTX, ##XrSpaceLocation, ##XrSpaceVelocity, ##XrSpatialAnchorCreateInfoMSFT, ##XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT, ##XrSpatialAnchorPersistenceInfoMSFT, ##XrSpatialAnchorSpaceCreateInfoMSFT, ##XrSpatialGraphNodeSpaceCreateInfoMSFT, ##XrSwapchainCreateInfo, ##XrSwapchainCreateInfoFoveationFB, ##XrSwapchainImageAcquireInfo, ##XrSwapchainImageBaseHeader, ##XrSwapchainImageFoveationVulkanFB, ##XrSwapchainImageOpenGLESKHR, ##XrSwapchainImageOpenGLKHR, ##XrSwapchainImageReleaseInfo, ##XrSwapchainImageVulkanKHR, ##XrSwapchainImageWaitInfo, ##XrSwapchainStateBaseHeaderFB, ##XrSwapchainStateFoveationFB, ##XrSwapchainStateSamplerOpenGLESFB, ##XrSwapchainStateSamplerVulkanFB, ##XrSystemColorSpacePropertiesFB, ##XrSystemEyeGazeInteractionPropertiesEXT, ##XrSystemFacialTrackingPropertiesHTC, ##XrSystemFoveatedRenderingPropertiesVARJO, ##XrSystemGetInfo, ##XrSystemHandTrackingMeshPropertiesMSFT, ##XrSystemHandTrackingPropertiesEXT, ##XrSystemKeyboardTrackingPropertiesFB, ##XrSystemMarkerTrackingPropertiesVARJO, ##XrSystemPassthroughPropertiesFB, ##XrSystemProperties, ##XrSystemRenderModelPropertiesFB, ##XrSystemSpaceWarpPropertiesFB, ##XrTriangleMeshCreateInfoFB, ##XrView, ##XrViewConfigurationDepthRangeEXT, ##XrViewConfigurationProperties, ##XrViewConfigurationView, ##XrViewConfigurationViewFovEPIC, ##XrViewLocateFoveatedRenderingVARJO, ##XrViewLocateInfo, ##XrViewState, ##XrVisibilityMaskKHR, ##XrVisualMeshComputeLodInfoMSFT, ##XrViveTrackerPathsHTCX, ##XrVulkanDeviceCreateInfoKHR, ##XrVulkanGraphicsDeviceGetInfoKHR, ##XrVulkanInstanceCreateInfoKHR, ##XrVulkanSwapchainFormatListCreateInfoKHR, #StructureTypeToString()
[kotlinc] """,
[kotlinc]
[kotlinc] "TYPE_UNKNOWN".."0",
[kotlinc] "TYPE_API_LAYER_PROPERTIES".."1",
[kotlinc] "TYPE_EXTENSION_PROPERTIES".."2",
[kotlinc] "TYPE_INSTANCE_CREATE_INFO".."3",
[kotlinc] "TYPE_SYSTEM_GET_INFO".."4",
[kotlinc] "TYPE_SYSTEM_PROPERTIES".."5",
[kotlinc] "TYPE_VIEW_LOCATE_INFO".."6",
[kotlinc] "TYPE_VIEW".."7",
[kotlinc] "TYPE_SESSION_CREATE_INFO".."8",
[kotlinc] "TYPE_SWAPCHAIN_CREATE_INFO".."9",
[kotlinc] "TYPE_SESSION_BEGIN_INFO".."10",
[kotlinc] "TYPE_VIEW_STATE".."11",
[kotlinc] "TYPE_FRAME_END_INFO".."12",
[kotlinc] "TYPE_HAPTIC_VIBRATION".."13",
[kotlinc] "TYPE_EVENT_DATA_BUFFER".."16",
[kotlinc] "TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING".."17",
[kotlinc] "TYPE_EVENT_DATA_SESSION_STATE_CHANGED".."18",
[kotlinc] "TYPE_ACTION_STATE_BOOLEAN".."23",
[kotlinc] "TYPE_ACTION_STATE_FLOAT".."24",
[kotlinc] "TYPE_ACTION_STATE_VECTOR2F".."25",
[kotlinc] "TYPE_ACTION_STATE_POSE".."27",
[kotlinc] "TYPE_ACTION_SET_CREATE_INFO".."28",
[kotlinc] "TYPE_ACTION_CREATE_INFO".."29",
[kotlinc] "TYPE_INSTANCE_PROPERTIES".."32",
[kotlinc] "TYPE_FRAME_WAIT_INFO".."33",
[kotlinc] "TYPE_COMPOSITION_LAYER_PROJECTION".."35",
[kotlinc] "TYPE_COMPOSITION_LAYER_QUAD".."36",
[kotlinc] "TYPE_REFERENCE_SPACE_CREATE_INFO".."37",
[kotlinc] "TYPE_ACTION_SPACE_CREATE_INFO".."38",
[kotlinc] "TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING".."40",
[kotlinc] "TYPE_VIEW_CONFIGURATION_VIEW".."41",
[kotlinc] "TYPE_SPACE_LOCATION".."42",
[kotlinc] "TYPE_SPACE_VELOCITY".."43",
[kotlinc] "TYPE_FRAME_STATE".."44",
[kotlinc] "TYPE_VIEW_CONFIGURATION_PROPERTIES".."45",
[kotlinc] "TYPE_FRAME_BEGIN_INFO".."46",
[kotlinc] "TYPE_COMPOSITION_LAYER_PROJECTION_VIEW".."48",
[kotlinc] "TYPE_EVENT_DATA_EVENTS_LOST".."49",
[kotlinc] "TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING".."51",
[kotlinc] "TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED".."52",
[kotlinc] "TYPE_INTERACTION_PROFILE_STATE".."53",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO".."55",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_WAIT_INFO".."56",
[kotlinc] "TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO".."57",
[kotlinc] "TYPE_ACTION_STATE_GET_INFO".."58",
[kotlinc] "TYPE_HAPTIC_ACTION_INFO".."59",
[kotlinc] "TYPE_SESSION_ACTION_SETS_ATTACH_INFO".."60",
[kotlinc] "TYPE_ACTIONS_SYNC_INFO".."61",
[kotlinc] "TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO".."62",
[kotlinc] "TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO".."63"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrFormFactor - Supported form factors
[kotlinc]
[kotlinc] Description
[kotlinc] The predefined form factors which may be supported by OpenXR runtimes are:
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #FORM_FACTOR_HEAD_MOUNTED_DISPLAY. The tracked display is attached to the user?s head. The user cannot touch the display itself. A VR headset would be an example of this form factor.
[kotlinc] - #FORM_FACTOR_HANDHELD_DISPLAY. The tracked display is held in the user?s hand, independent from the user?s head. The user may be able to touch the display, allowing for screen-space UI. A mobile phone running an AR experience using pass-through video would be an example of this form factor.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #NULL_SYSTEM_ID, ##XrSystemGetInfo, #GetSystem()
[kotlinc] """,
[kotlinc]
[kotlinc] "FORM_FACTOR_HEAD_MOUNTED_DISPLAY".."1",
[kotlinc] "FORM_FACTOR_HANDHELD_DISPLAY".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrViewConfigurationType - Supported view configuration type
[kotlinc]
[kotlinc] Description
[kotlinc] The application selects its primary view configuration type when calling #BeginSession(), and that configuration remains constant for the lifetime of the session, until #EndSession() is called.
[kotlinc]
[kotlinc] The number of views and the semantic meaning of each view index within a given view configuration is well-defined, specified below for all core view configurations. The predefined primary view configuration types are:
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #VIEW_CONFIGURATION_TYPE_PRIMARY_MONO. One view representing the form factor?s one primary display. For example, an AR phone?s screen. This configuration requires one element in ##XrViewConfigurationProperties and one projection in each ##XrCompositionLayerProjection layer.
[kotlinc] - #VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO. Two views representing the form factor?s two primary displays, which map to a left-eye and right-eye view. This configuration requires two views in ##XrViewConfigurationProperties and two views in each ##XrCompositionLayerProjection layer. View index 0 must represent the left eye and view index 1 must represent the right eye.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataVisibilityMaskChangedKHR, ##XrSecondaryViewConfigurationLayerInfoMSFT, ##XrSecondaryViewConfigurationSessionBeginInfoMSFT, ##XrSecondaryViewConfigurationStateMSFT, ##XrSecondaryViewConfigurationSwapchainCreateInfoMSFT, ##XrSessionBeginInfo, ##XrViewConfigurationProperties, ##XrViewLocateInfo, #EnumerateEnvironmentBlendModes(), #EnumerateReprojectionModesMSFT(), #EnumerateViewConfigurationViews(), #EnumerateViewConfigurations(), #GetViewConfigurationProperties(), #GetVisibilityMaskKHR()
[kotlinc] """,
[kotlinc]
[kotlinc] "VIEW_CONFIGURATION_TYPE_PRIMARY_MONO".."1",
[kotlinc] "VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrEnvironmentBlendMode - Environment blend modes
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #ENVIRONMENT_BLEND_MODE_OPAQUE. The composition layers will be displayed with no view of the physical world behind them. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel. This is the typical mode for VR experiences, although this mode can also be supported on devices that support video passthrough.
[kotlinc] - #ENVIRONMENT_BLEND_MODE_ADDITIVE. The composition layers will be additively blended with the real world behind the display. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel during the additive blending. This will cause black composited pixels to appear transparent. This is the typical mode for an AR experience on a see-through headset with an additive display, although this mode can also be supported on devices that support video passthrough.
[kotlinc] - #ENVIRONMENT_BLEND_MODE_ALPHA_BLEND. The composition layers will be alpha-blended with the real world behind the display. The composited image will be interpreted as an RGBA image, with the composited alpha channel determining each pixel?s level of blending with the real world behind the display. This is the typical mode for an AR experience on a phone or headset that supports video passthrough.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameEndInfo, ##XrSecondaryViewConfigurationLayerInfoMSFT, #EnumerateEnvironmentBlendModes()
[kotlinc] """,
[kotlinc]
[kotlinc] "ENVIRONMENT_BLEND_MODE_OPAQUE".."1",
[kotlinc] "ENVIRONMENT_BLEND_MODE_ADDITIVE".."2",
[kotlinc] "ENVIRONMENT_BLEND_MODE_ALPHA_BLEND".."3"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSpaceVelocityFlagBits",
[kotlinc]
[kotlinc] "SPACE_VELOCITY_LINEAR_VALID_BIT".enum(0x00000001),
[kotlinc] "SPACE_VELOCITY_ANGULAR_VALID_BIT".enum(0x00000002)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrReferenceSpaceType - Reference space types
[kotlinc]
[kotlinc] Description
[kotlinc] Available reference space types are indicated by #EnumerateReferenceSpaces(). Note that other spaces can be created as well, such as pose action spaces created by #CreateActionSpace(), which are not enumerated by that API.
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_VIEW. The {@code VIEW} space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user?s eye orientation, and is not gravity-aligned.
[kotlinc] {@code VIEW} space is primarily useful when projecting from the user?s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in {@code VIEW} space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call #LocateViews() instead of using this space.
[kotlinc]
[kotlinc] Runtimes must support this reference space.
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_LOCAL. The {@code LOCAL} reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at application launch or some other calibrated zero position.
[kotlinc] {@code LOCAL} space is useful when an application needs to render seated-scale content that is not positioned relative to the physical floor.
[kotlinc]
[kotlinc] When a user needs to recenter {@code LOCAL} space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new {@code LOCAL} space. When such a recentering occurs, the runtime must queue the ##XrEventDataReferenceSpaceChangePending event, with the recentered {@code LOCAL} space origin only taking effect for #LocateSpace() or #LocateViews() calls whose {@code XrTime} parameter is greater than or equal to the {@code changeTime} provided in that event.
[kotlinc]
[kotlinc] When views, controllers or other spaces experience tracking loss relative to the {@code LOCAL} space, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT and #VIEW_STATE_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT and #VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the {@code LOCAL} space?s original origin.
[kotlinc]
[kotlinc] Runtimes must support this reference space.
[kotlinc]
[kotlinc] -
[kotlinc] #REFERENCE_SPACE_TYPE_STAGE. The {@code STAGE} reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the {@code STAGE} reference space if the user has not yet defined one within the runtime-specific UI. Applications can use #GetReferenceSpaceBoundsRect() to determine the extents of the {@code STAGE} reference space?s XZ bounds rectangle, if defined.
[kotlinc] {@code STAGE} space is useful when an application needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor.
[kotlinc]
[kotlinc] When the user redefines the origin or bounds of the current {@code STAGE} space, or the runtime otherwise switches to a new {@code STAGE} definition, the runtime must queue the ##XrEventDataReferenceSpaceChangePending event, with the new {@code STAGE} space origin only taking effect for #LocateSpace() or #LocateViews() calls whose {@code XrTime} parameter is greater than or equal to the {@code changeTime} provided in that event.
[kotlinc]
[kotlinc] When views, controllers or other spaces experience tracking loss relative to the {@code STAGE} space, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT and #VIEW_STATE_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT and #VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the {@code STAGE} space?s original origin.
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataReferenceSpaceChangePending, ##XrReferenceSpaceCreateInfo, #EnumerateReferenceSpaces(), #GetReferenceSpaceBoundsRect()
[kotlinc] """,
[kotlinc]
[kotlinc] "REFERENCE_SPACE_TYPE_VIEW".."1",
[kotlinc] "REFERENCE_SPACE_TYPE_LOCAL".."2",
[kotlinc] "REFERENCE_SPACE_TYPE_STAGE".."3"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSpaceLocationFlagBits",
[kotlinc]
[kotlinc] "SPACE_LOCATION_ORIENTATION_VALID_BIT".enum(0x00000001),
[kotlinc] "SPACE_LOCATION_POSITION_VALID_BIT".enum(0x00000002),
[kotlinc] "SPACE_LOCATION_ORIENTATION_TRACKED_BIT".enum(0x00000004),
[kotlinc] "SPACE_LOCATION_POSITION_TRACKED_BIT".enum(0x00000008)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSwapchainCreateFlagBits",
[kotlinc]
[kotlinc] "SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT".enum(0x00000001),
[kotlinc] "SWAPCHAIN_CREATE_STATIC_IMAGE_BIT".enum(0x00000002)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrSwapchainUsageFlagBits",
[kotlinc]
[kotlinc] "SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT".enum(0x00000001),
[kotlinc] "SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT".enum(0x00000002),
[kotlinc] "SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT".enum(0x00000004),
[kotlinc] "SWAPCHAIN_USAGE_TRANSFER_SRC_BIT".enum(0x00000008),
[kotlinc] "SWAPCHAIN_USAGE_TRANSFER_DST_BIT".enum(0x00000010),
[kotlinc] "SWAPCHAIN_USAGE_SAMPLED_BIT".enum(0x00000020),
[kotlinc] "SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT".enum(0x00000040)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrCompositionLayerFlagBits",
[kotlinc]
[kotlinc] "COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT".enum(0x00000001),
[kotlinc] "COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT".enum(0x00000002),
[kotlinc] "COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT".enum(0x00000004)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrViewStateFlagBits",
[kotlinc]
[kotlinc] "VIEW_STATE_ORIENTATION_VALID_BIT".enum(0x00000001),
[kotlinc] "VIEW_STATE_POSITION_VALID_BIT".enum(0x00000002),
[kotlinc] "VIEW_STATE_ORIENTATION_TRACKED_BIT".enum(0x00000004),
[kotlinc] "VIEW_STATE_POSITION_TRACKED_BIT".enum(0x00000008)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrActionType - XrAction type
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #ACTION_TYPE_BOOLEAN_INPUT. The action can be passed to #GetActionStateBoolean() to retrieve a boolean value.
[kotlinc] - #ACTION_TYPE_FLOAT_INPUT. The action can be passed to #GetActionStateFloat() to retrieve a float value.
[kotlinc] - #ACTION_TYPE_VECTOR2F_INPUT. The action can be passed to #GetActionStateVector2f() to retrieve a 2D float vector.
[kotlinc] - #ACTION_TYPE_POSE_INPUT. The action can can be passed to #CreateActionSpace() to create a space.
[kotlinc] - #ACTION_TYPE_VIBRATION_OUTPUT. The action can be passed to #ApplyHapticFeedback() to send a haptic event to the runtime.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, #CreateActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] "ACTION_TYPE_BOOLEAN_INPUT".."1",
[kotlinc] "ACTION_TYPE_FLOAT_INPUT".."2",
[kotlinc] "ACTION_TYPE_VECTOR2F_INPUT".."3",
[kotlinc] "ACTION_TYPE_POSE_INPUT".."4",
[kotlinc] "ACTION_TYPE_VIBRATION_OUTPUT".."100"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] "XrInputSourceLocalizedNameFlagBits",
[kotlinc]
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT".enum(0x00000001),
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT".enum(0x00000002),
[kotlinc] "INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT".enum(0x00000004)
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrEyeVisibility - Eye visibility selector
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #EYE_VISIBILITY_BOTH displays the layer to both eyes.
[kotlinc] - #EYE_VISIBILITY_LEFT displays the layer to the viewer?s physical left eye.
[kotlinc] - #EYE_VISIBILITY_RIGHT displays the layer to the viewer?s physical right eye.
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrCompositionLayerCubeKHR, ##XrCompositionLayerCylinderKHR, ##XrCompositionLayerEquirect2KHR, ##XrCompositionLayerEquirectKHR, ##XrCompositionLayerQuad
[kotlinc] """,
[kotlinc]
[kotlinc] "EYE_VISIBILITY_BOTH".."0",
[kotlinc] "EYE_VISIBILITY_LEFT".."1",
[kotlinc] "EYE_VISIBILITY_RIGHT".."2"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrSessionState - Session lifecycle state
[kotlinc]
[kotlinc] Enumerant Descriptions
[kotlinc]
[kotlinc] - #SESSION_STATE_UNKNOWN. An unknown state. The runtime must not return this value in an ##XrEventDataSessionStateChanged event.
[kotlinc] - #SESSION_STATE_IDLE. The initial state after calling #CreateSession() or returned to after calling #EndSession().
[kotlinc] - #SESSION_STATE_READY. The application is ready to call #BeginSession() and sync its frame loop with the runtime.
[kotlinc] - #SESSION_STATE_SYNCHRONIZED. The application has synced its frame loop with the runtime but is not visible to the user.
[kotlinc] - #SESSION_STATE_VISIBLE. The application has synced its frame loop with the runtime and is visible to the user but cannot receive XR input.
[kotlinc] - #SESSION_STATE_FOCUSED. The application has synced its frame loop with the runtime, is visible to the user and can receive XR input.
[kotlinc] - #SESSION_STATE_STOPPING. The application should exit its frame loop and call #EndSession().
[kotlinc] - #SESSION_STATE_LOSS_PENDING. The session is in the process of being lost. The application should destroy the current session and can optionally recreate it.
[kotlinc] - #SESSION_STATE_EXITING. The application should end its XR experience and not automatically restart it.
[kotlinc]
[kotlinc]
[kotlinc] The #SESSION_STATE_UNKNOWN state must not be returned by the runtime, and is only defined to avoid 0 being a valid state.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_IDLE state indicates that the runtime considers the session is idle. Applications in this state should minimize resource consumption but continue to call #PollEvent() at some reasonable cadence.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_READY state indicates that the runtime desires the application to prepare rendering resources, begin its session and synchronize its frame loop with the runtime. The application does this by successfully calling #BeginSession() and then running its frame loop by calling #WaitFrame(), #BeginFrame() and #EndFrame() in a loop. If the runtime wishes to return the session to the #SESSION_STATE_IDLE state, it must wait until the application calls #BeginSession(). After returning from the #BeginSession() call, the runtime may then immediately transition forward through the #SESSION_STATE_SYNCHRONIZED state to the #SESSION_STATE_STOPPING state, to request that the application end this session. If the system supports a user engagement sensor and runtime is in #SESSION_STATE_IDLE state, the runtime should not transition to the #SESSION_STATE_READY state until the user starts engaging with the device.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_SYNCHRONIZED state indicates that the application has synchronized its frame loop with the runtime, but its frames are not visible to the user. The application should continue running its frame loop by calling #WaitFrame(), #BeginFrame() and #EndFrame(), although it should avoid heavy GPU work so that other visible applications can take CPU and GPU precedence. The application can save resources here by skipping rendering and not submitting any composition layers until #WaitFrame() returns an ##XrFrameState with {@code shouldRender} set to true. A runtime may use this frame synchronization to facilitate seamless switching from a previous XR application to this application on a frame boundary.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_VISIBLE state indicates that the application has synchronized its frame loop with the runtime, and the session?s frames will be visible to the user, but the session is not eligible to receive XR input. An application may be visible but not have focus, for example when the runtime is composing a modal pop-up on top of the application?s rendered frames. The application should continue running its frame loop, rendering and submitting its composition layers, although it may wish to pause its experience, as users cannot interact with the application at this time. It is important for applications to continue rendering when visible, even when they do not have focus, so the user continues to see something reasonable underneath modal pop-ups. Runtimes should make input actions inactive while the application is unfocused, and applications should react to an inactive input action by skipping rendering of that action?s input avatar (depictions of hands or other tracked objects controlled by the user).
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_FOCUSED state indicates that the application has synchronized its frame loop with the runtime, the session?s frames will be visible to the user, and the session is eligible to receive XR input. The runtime should only give one session XR input focus at any given time. The application should be running its frame loop, rendering and submitting composition layers, including input avatars (depictions of hands or other tracked objects controlled by the user) for any input actions that are active. The runtime should avoid rendering its own input avatars when an application is focused, unless input from a given source is being captured by the runtime at the moment.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_STOPPING state indicates that the runtime has determined that the application should halt its rendering loop. Applications should exit their rendering loop and call #EndSession() when in this state. A possible reason for this would be to minimize contention between multiple applications. If the system supports a user engagement sensor and the session is running, the runtime should transition to the #SESSION_STATE_STOPPING state when the user stops engaging with the device.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_EXITING state indicates the runtime wishes the application to terminate its XR experience, typically due to a user request via a runtime user interface. Applications should gracefully end their process when in this state if they do not have a non-XR user experience.
[kotlinc]
[kotlinc] Receiving the #SESSION_STATE_LOSS_PENDING state indicates the runtime is no longer able to operate with the current session, for example due to the loss of a display hardware connection. An application should call #DestroySession() and may end its process or decide to poll #GetSystem() at some reasonable cadence to get a new {@code XrSystemId}, and re-initialize all graphics resources related to the new system, and then create a new session using #CreateSession(). After the event is queued, subsequent calls to functions that accept {@code XrSession} parameters must no longer return any success code other than #SESSION_LOSS_PENDING for the given {@code XrSession} handle. The #SESSION_LOSS_PENDING success result is returned for an unspecified grace period of time, and the functions that return it simulate success in their behavior. If the runtime has no reasonable way to successfully complete a given function (e.g. #CreateSwapchain()) when a lost session is pending, or if the runtime is not able to provide the application a grace period, the runtime may return #ERROR_SESSION_LOST. Thereafter, functions which accept {@code XrSession} parameters for the lost session may return #ERROR_SESSION_LOST to indicate that the function failed and the given session was lost. The {@code XrSession} handle and child handles are henceforth unusable and should be destroyed by the application in order to immediately free up resources associated with those handles.
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataSessionStateChanged, #PollEvent()
[kotlinc] """,
[kotlinc]
[kotlinc] "SESSION_STATE_UNKNOWN".."0",
[kotlinc] "SESSION_STATE_IDLE".."1",
[kotlinc] "SESSION_STATE_READY".."2",
[kotlinc] "SESSION_STATE_SYNCHRONIZED".."3",
[kotlinc] "SESSION_STATE_VISIBLE".."4",
[kotlinc] "SESSION_STATE_FOCUSED".."5",
[kotlinc] "SESSION_STATE_STOPPING".."6",
[kotlinc] "SESSION_STATE_LOSS_PENDING".."7",
[kotlinc] "SESSION_STATE_EXITING".."8"
[kotlinc] )
[kotlinc]
[kotlinc] EnumConstant(
[kotlinc] """
[kotlinc] XrObjectType - Specify an enumeration to track object handle types
[kotlinc]
[kotlinc] Description
[kotlinc] The {@code XrObjectType} enumeration defines values, each of which corresponds to a specific OpenXR handle type. These values can be used to associate debug information with a particular type of object through one or more extensions.
[kotlinc]
[kotlinc] The following table defines {@code XrObjectType} and OpenXR Handle relationships:
[kotlinc]
[kotlinc]
[kotlinc] {@code XrObjectType} | OpenXR Handle Type |
[kotlinc]
[kotlinc] #OBJECT_TYPE_UNKNOWN | Unknown/Undefined Handle |
[kotlinc] #OBJECT_TYPE_INSTANCE | {@code XrInstance} |
[kotlinc] #OBJECT_TYPE_SESSION | {@code XrSession} |
[kotlinc] #OBJECT_TYPE_SWAPCHAIN | {@code XrSwapchain} |
[kotlinc] #OBJECT_TYPE_SPACE | {@code XrSpace} |
[kotlinc] #OBJECT_TYPE_ACTION_SET | {@code XrActionSet} |
[kotlinc] #OBJECT_TYPE_ACTION | {@code XrAction} |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrDebugUtilsObjectNameInfoEXT
[kotlinc] """,
[kotlinc]
[kotlinc] "OBJECT_TYPE_UNKNOWN".."0",
[kotlinc] "OBJECT_TYPE_INSTANCE".."1",
[kotlinc] "OBJECT_TYPE_SESSION".."2",
[kotlinc] "OBJECT_TYPE_SWAPCHAIN".."3",
[kotlinc] "OBJECT_TYPE_SPACE".."4",
[kotlinc] "OBJECT_TYPE_ACTION_SET".."5",
[kotlinc] "OBJECT_TYPE_ACTION".."6"
[kotlinc] )
[kotlinc]
[kotlinc] // Instance
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "GetInstanceProcAddr",
[kotlinc] """
[kotlinc] Gets a function pointer for an OpenXR function.
[kotlinc]
[kotlinc] C Specification
[kotlinc] Function pointers for all OpenXR functions can be obtained with the function #GetInstanceProcAddr().
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInstanceProcAddr(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const char* name,
[kotlinc] ? PFN_xrVoidFunction* function);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetInstanceProcAddr() itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this function as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs. Loaders must export function symbols for all core OpenXR functions. Because of this, applications that use only the core OpenXR functions have no need to use #GetInstanceProcAddr().
[kotlinc]
[kotlinc] Because an application can call #GetInstanceProcAddr() before creating an instance, #GetInstanceProcAddr() returns a valid function pointer when the {@code instance} parameter is #NULL_HANDLE and the {@code name} parameter is one of the following strings:
[kotlinc]
[kotlinc] No Instance Required
[kotlinc]
[kotlinc] - #EnumerateInstanceExtensionProperties()
[kotlinc] - #EnumerateApiLayerProperties()
[kotlinc] - #CreateInstance()
[kotlinc]
[kotlinc]
[kotlinc] #GetInstanceProcAddr() must return #ERROR_HANDLE_INVALID if {@code name} is not one of the above strings and {@code instance} is #NULL_HANDLE. #GetInstanceProcAddr() may return #ERROR_HANDLE_INVALID if {@code name} is not one of the above strings and {@code instance} is invalid but not #NULL_HANDLE.
[kotlinc]
[kotlinc] #GetInstanceProcAddr() must return #ERROR_FUNCTION_UNSUPPORTED if {@code instance} is a valid instance and the string specified in {@code name} is not the name of an OpenXR core or enabled extension function.
[kotlinc]
[kotlinc] If {@code name} is the name of an extension function, then the result returned by #GetInstanceProcAddr() will depend upon how the {@code instance} was created. If {@code instance} was created with the related extension?s name appearing in the ##XrInstanceCreateInfo{@code ::enabledExtensionNames} array, then #GetInstanceProcAddr() returns a valid function pointer. If the related extension?s name did not appear in the ##XrInstanceCreateInfo{@code ::enabledExtensionNames} array during the creation of {@code instance}, then #GetInstanceProcAddr() returns #ERROR_FUNCTION_UNSUPPORTED. Because of this, function pointers returned by #GetInstanceProcAddr() using one {@code XrInstance} may not be valid when used with objects related to a different {@code XrInstance}.
[kotlinc]
[kotlinc] The returned function pointer is of type {@code PFN_xrVoidFunction}, and must be cast to the type of the function being queried.
[kotlinc]
[kotlinc] The table below defines the various use cases for #GetInstanceProcAddr() and return value (?{@code fp}? is ?{@code function pointer}?) for each case.
[kotlinc]
[kotlinc] xrGetInstanceProcAddr behavior
[kotlinc]
[kotlinc] {@code instance} parameter | {@code name} parameter | return value |
[kotlinc]
[kotlinc] * | {@code NULL} | undefined |
[kotlinc] invalid instance | * | undefined |
[kotlinc] {@code NULL} | #EnumerateInstanceExtensionProperties() | fp |
[kotlinc] {@code NULL} | #EnumerateApiLayerProperties() | fp |
[kotlinc] {@code NULL} | #CreateInstance() | fp |
[kotlinc] {@code NULL} | * (any {@code name} not covered above) | {@code NULL} |
[kotlinc] instance | core OpenXR function | fp1 |
[kotlinc] instance | enabled extension function for {@code instance} | fp1 |
[kotlinc] instance | * (any {@code name} not covered above) | {@code NULL} |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] - 1
[kotlinc] - The returned function pointer must only be called with a handle (the first parameter) that is {@code instance} or a child of {@code instance}.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - If {@code instance} is not #NULL_HANDLE, {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code name} must be a null-terminated UTF-8 string
[kotlinc] - {@code function} must be a pointer to a {@code PFN_xrVoidFunction} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_FUNCTION_UNSUPPORTED
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance that the function pointer will be compatible with, or {@code NULL} for functions not dependent on any instance."),
[kotlinc] charUTF8.const.p("name", "the name of the function to obtain."),
[kotlinc] Check(1)..PFN_xrVoidFunction.p("function", "the address of the function pointer to get.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "EnumerateApiLayerProperties",
[kotlinc] """
[kotlinc] Returns up to requested number of global layer properties.
[kotlinc]
[kotlinc] C Specification
[kotlinc] To determine what set of API layers are available, OpenXR provides the #EnumerateApiLayerProperties() function:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateApiLayerProperties(
[kotlinc] ? uint32_t propertyCapacityInput,
[kotlinc] ? uint32_t* propertyCountOutput,
[kotlinc] ? XrApiLayerProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] The list of available layers may change at any time due to actions outside of the OpenXR runtime, so two calls to #EnumerateApiLayerProperties() with the same parameters may return different results, or retrieve different {@code propertyCountOutput} values or {@code properties} contents.
[kotlinc]
[kotlinc] Once an instance has been created, the layers enabled for that instance will continue to be enabled and valid for the lifetime of that instance, even if some of them become unavailable for future instances.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code propertyCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code propertyCapacityInput} is not 0, {@code properties} must be a pointer to an array of {@code propertyCapacityInput} ##XrApiLayerProperties structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrApiLayerProperties
[kotlinc] """,
[kotlinc]
[kotlinc] AutoSize("properties")..uint32_t("propertyCapacityInput", "the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("propertyCountOutput", "a pointer to the count of properties written, or a pointer to the required capacity in the case that propertyCapacityInput is 0."),
[kotlinc] nullable..XrApiLayerProperties.p("properties", "a pointer to an array of ##XrApiLayerProperties structures, but can be {@code NULL} if propertyCapacityInput is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "EnumerateInstanceExtensionProperties",
[kotlinc] """
[kotlinc] Returns properties of available instance extensions.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The application can determine the available instance extensions by calling #EnumerateInstanceExtensionProperties():
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateInstanceExtensionProperties(
[kotlinc] ? const char* layerName,
[kotlinc] ? uint32_t propertyCapacityInput,
[kotlinc] ? uint32_t* propertyCountOutput,
[kotlinc] ? XrExtensionProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] If {@code properties} is {@code NULL}, then the number of extensions properties available is returned in {@code propertyCountOutput}. Otherwise, {@code propertyCountInput} must point to a variable set by the user to the number of elements in the {@code properties} array. If {@code propertyCountInput} is less than the number of extension properties available, the contents of {@code properties} will be undefined. If {@code propertyCountInput} is smaller than the number of extensions available, the runtime must return the failure code #ERROR_SIZE_INSUFFICIENT and the contents of {@code properties} are undefined.
[kotlinc]
[kotlinc] Because the list of available layers may change externally between calls to #EnumerateInstanceExtensionProperties(), two calls may retrieve different results if a {@code layerName} is available in one call but not in another. The extensions supported by a layer may also change between two calls, e.g. if the layer implementation is replaced by a different version between those calls.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - If {@code layerName} is not {@code NULL}, {@code layerName} must be a null-terminated UTF-8 string
[kotlinc] - {@code propertyCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code propertyCapacityInput} is not 0, {@code properties} must be a pointer to an array of {@code propertyCapacityInput} ##XrExtensionProperties structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_RUNTIME_UNAVAILABLE
[kotlinc] - #ERROR_API_LAYER_NOT_PRESENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtensionProperties
[kotlinc] """,
[kotlinc]
[kotlinc] nullable..charUTF8.const.p("layerName", "either {@code NULL} or a pointer to a string naming the API layer to retrieve extensions from, as returned by #EnumerateApiLayerProperties()."),
[kotlinc] AutoSize("properties")..uint32_t("propertyCapacityInput", "the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("propertyCountOutput", "a pointer to the count of properties written, or a pointer to the required capacity in the case that {@code propertyCapacityInput} is 0."),
[kotlinc] nullable..XrExtensionProperties.p("properties", "a pointer to an array of ##XrExtensionProperties structures, but can be {@code NULL} if {@code propertyCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] GlobalCommand..XrResult(
[kotlinc] "CreateInstance",
[kotlinc] """
[kotlinc] Creates an OpenXR Instance.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateInstance() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateInstance(
[kotlinc] ? const XrInstanceCreateInfo* createInfo,
[kotlinc] ? XrInstance* instance);
[kotlinc]
[kotlinc] Description
[kotlinc] #CreateInstance() creates the {@code XrInstance}, then enables and initializes global API layers and extensions requested by the application. If an extension is provided by an API layer, both the API layer and extension must be specified at #CreateInstance() time. If a specified API layer cannot be found, no {@code XrInstance} will be created and the function will return #ERROR_API_LAYER_NOT_PRESENT. Likewise, if a specified extension cannot be found, the call must return #ERROR_EXTENSION_NOT_PRESENT and no {@code XrInstance} will be created. Additionally, some runtimes may limit the number of concurrent instances that may be in use. If the application attempts to create more instances than a runtime can simultaneously support, #CreateInstance() may return #ERROR_LIMIT_REACHED.
[kotlinc]
[kotlinc] If the ##XrApplicationInfo{@code ::applicationName} is the empty string the runtime must return #ERROR_NAME_INVALID.
[kotlinc]
[kotlinc] If the ##XrInstanceCreateInfo structure contains a platform-specific extension for a platform other than the target platform, #ERROR_INITIALIZATION_FAILED may be returned. If a mandatory platform-specific extension is defined for the target platform but no matching extension struct is provided in ##XrInstanceCreateInfo the runtime must return #ERROR_INITIALIZATION_FAILED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrInstanceCreateInfo structure
[kotlinc] - {@code instance} must be a pointer to an {@code XrInstance} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_RUNTIME_UNAVAILABLE
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_INITIALIZATION_FAILED
[kotlinc] - #ERROR_EXTENSION_NOT_PRESENT
[kotlinc] - #ERROR_API_VERSION_UNSUPPORTED
[kotlinc] - #ERROR_API_LAYER_NOT_PRESENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInstanceCreateInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstanceCreateInfo.const.p("createInfo", "points to an instance of ##XrInstanceCreateInfo controlling creation of the instance."),
[kotlinc] Check(1)..XrInstance.p("instance", "points to an {@code XrInstance} handle in which the resulting instance is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyInstance",
[kotlinc] """
[kotlinc] Destroy an instance of OpenXR.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyInstance() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyInstance(
[kotlinc] ? XrInstance instance);
[kotlinc]
[kotlinc] Parameter Descriptions
[kotlinc]
[kotlinc] - {@code instance} is the handle to the instance to destroy.
[kotlinc]
[kotlinc]
[kotlinc] {@code XrInstance} handles are destroyed using #DestroyInstance(). When an {@code XrInstance} is destroyed, all handles that are children of that {@code XrInstance} are also destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code instance}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetInstanceProperties",
[kotlinc] """
[kotlinc] Gets information about the instance.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetInstanceProperties() function provides information about the instance and the associated runtime.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInstanceProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrInstanceProperties* instanceProperties);
[kotlinc]
[kotlinc] Description
[kotlinc] The {@code instanceProperties} parameter must be filled out by the runtime in response to this call, with information as defined in ##XrInstanceProperties.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code instanceProperties} must be a pointer to an ##XrInstanceProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInstanceProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "a handle to an {@code XrInstance} previously created with #CreateInstance()."),
[kotlinc] XrInstanceProperties.p("instanceProperties", "points to an ##XrInstanceProperties which describes the {@code instance}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "PollEvent",
[kotlinc] """
[kotlinc] Polls for events.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrPollEvent(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrEventDataBuffer* eventData);
[kotlinc]
[kotlinc] Parameter Descriptions
[kotlinc]
[kotlinc] - {@code instance} is a valid {@code XrInstance}.
[kotlinc] - {@code eventData} is a pointer to a valid ##XrEventDataBuffer.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code eventData} must be a pointer to an ##XrEventDataBuffer structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #EVENT_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] The runtime must discard queued events which contain destroyed or otherwise invalid handles.
[kotlinc]
[kotlinc] Event Descriptions
[kotlinc]
[kotlinc] Event | Description |
[kotlinc]
[kotlinc] ##XrEventDataEventsLost | event queue has overflowed and some events were lost |
[kotlinc] ##XrEventDataInstanceLossPending | application is about to lose the instance |
[kotlinc] ##XrEventDataInteractionProfileChanged | active input form factor for one or more top level user paths has changed |
[kotlinc] ##XrEventDataReferenceSpaceChangePending | runtime will begin operating with updated space bounds |
[kotlinc] ##XrEventDataSessionStateChanged | application has changed lifecycle state |
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrEventDataBuffer
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", ""),
[kotlinc] XrEventDataBuffer.p("eventData", "")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ResultToString",
[kotlinc] """
[kotlinc] Converts an XrResult to a UTF-8 string.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrResultToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrResult value,
[kotlinc] ? char buffer[XR_MAX_RESULT_STRING_SIZE]);
[kotlinc]
[kotlinc] Description
[kotlinc] Returns the text version of the provided {@code XrResult} value as a UTF-8 string.
[kotlinc]
[kotlinc] In all cases the returned string must be one of:
[kotlinc]
[kotlinc] Result String Return Values
[kotlinc]
[kotlinc] - The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value 0 results in the string {@code XR_SUCCESS})
[kotlinc] - {@code XR_UNKNOWN_SUCCESS_} concatenated with the positive result number expressed as a decimal number.
[kotlinc] - {@code XR_UNKNOWN_FAILURE_} concatenated with the negative result number expressed as a decimal number.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code value} must be a valid {@code XrResult} value
[kotlinc] - {@code buffer} must be a character array of length #MAX_RESULT_STRING_SIZE
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #StructureTypeToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance to ask for the string."),
[kotlinc] XrResult("value", "the {@code XrResult} value to turn into a string."),
[kotlinc] Check("XR_MAX_RESULT_STRING_SIZE")..charUTF8.p("buffer", "the buffer that will be used to return the string in.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StructureTypeToString",
[kotlinc] """
[kotlinc] Converts an XrStructureType to a UTF-8 string.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StructureTypeToString() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStructureTypeToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrStructureType value,
[kotlinc] ? char buffer[XR_MAX_STRUCTURE_NAME_SIZE]);
[kotlinc]
[kotlinc] Description
[kotlinc] Returns the text version of the provided {@code XrStructureType} value as a UTF-8 string.
[kotlinc]
[kotlinc] In all cases the returned string must be one of:
[kotlinc]
[kotlinc] Structure Type String Return Values
[kotlinc]
[kotlinc] - The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value of #TYPE_INSTANCE_CREATE_INFO results in the string #TYPE_INSTANCE_CREATE_INFO)
[kotlinc] - {@code XR_UNKNOWN_STRUCTURE_TYPE_} concatenated with the structure type number expressed as a decimal number.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code value} must be a valid {@code XrStructureType} value
[kotlinc] - {@code buffer} must be a character array of length #MAX_STRUCTURE_NAME_SIZE
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #ResultToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance to ask for the string."),
[kotlinc] XrStructureType("value", "the {@code XrStructureType} value to turn into a string."),
[kotlinc] Check("XR_MAX_STRUCTURE_NAME_SIZE")..charUTF8.p("buffer", "the buffer that will be used to return the string in.")
[kotlinc] )
[kotlinc]
[kotlinc] // Device
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetSystem",
[kotlinc] """
[kotlinc] Gets a system identifier.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetSystem() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetSystem(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrSystemGetInfo* getInfo,
[kotlinc] ? XrSystemId* systemId);
[kotlinc]
[kotlinc] Description
[kotlinc] To get an {@code XrSystemId}, an application specifies its desired form factor to #GetSystem() and gets the runtime?s {@code XrSystemId} associated with that configuration.
[kotlinc]
[kotlinc] If the form factor is supported but temporarily unavailable, #GetSystem() must return #ERROR_FORM_FACTOR_UNAVAILABLE. A runtime may return #SUCCESS on a subsequent call for a form factor it previously returned #ERROR_FORM_FACTOR_UNAVAILABLE. For example, connecting or warming up hardware might cause an unavailable form factor to become available.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrSystemGetInfo structure
[kotlinc] - {@code systemId} must be a pointer to an {@code XrSystemId} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_FORM_FACTOR_UNSUPPORTED
[kotlinc] - #ERROR_FORM_FACTOR_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #NULL_SYSTEM_ID, ##XrSystemGetInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the handle of the instance from which to get the information."),
[kotlinc] XrSystemGetInfo.const.p("getInfo", "a pointer to an ##XrSystemGetInfo structure containing the application?s requests for a system."),
[kotlinc] Check(1)..XrSystemId.p("systemId", "the returned {@code XrSystemId}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetSystemProperties",
[kotlinc] """
[kotlinc] Gets the properties of a particular system.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetSystemProperties() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetSystemProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrSystemProperties* properties);
[kotlinc]
[kotlinc] Description
[kotlinc] An application can call #GetSystemProperties() to retrieve information about the system such as vendor ID, system name, and graphics and tracking properties.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code properties} must be a pointer to an ##XrSystemProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSystemProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose properties will be queried."),
[kotlinc] XrSystemProperties.p("properties", "points to an instance of the ##XrSystemProperties structure, that will be filled with returned information.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateEnvironmentBlendModes",
[kotlinc] """
[kotlinc] Lists environment blend modes.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateEnvironmentBlendModes() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateEnvironmentBlendModes(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? uint32_t environmentBlendModeCapacityInput,
[kotlinc] ? uint32_t* environmentBlendModeCountOutput,
[kotlinc] ? XrEnvironmentBlendMode* environmentBlendModes);
[kotlinc]
[kotlinc] Description
[kotlinc] Enumerates the set of environment blend modes that this runtime supports for a given view configuration of the system. Environment blend modes should be in order from highest to lowest runtime preference.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and {@code viewConfigurationType} for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code environmentBlendModeCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code environmentBlendModeCapacityInput} is not 0, {@code environmentBlendModes} must be a pointer to an array of {@code environmentBlendModeCapacityInput} {@code XrEnvironmentBlendMode} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose environment blend modes will be enumerated."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} to enumerate."),
[kotlinc] AutoSize("environmentBlendModes")..uint32_t("environmentBlendModeCapacityInput", "the capacity of the {@code environmentBlendModes} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("environmentBlendModeCountOutput", "a pointer to the count of {@code environmentBlendModes} written, or a pointer to the required capacity in the case that {@code environmentBlendModeCapacityInput} is 0."),
[kotlinc] nullable..XrEnvironmentBlendMode.p("environmentBlendModes", "a pointer to an array of {@code XrEnvironmentBlendMode} values, but can be {@code NULL} if {@code environmentBlendModeCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateSession",
[kotlinc] """
[kotlinc] Creates an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateSession(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrSessionCreateInfo* createInfo,
[kotlinc] ? XrSession* session);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates a session using the provided {@code createInfo} and returns a handle to that session. This session is created in the #SESSION_STATE_IDLE state, and a corresponding ##XrEventDataSessionStateChanged event to the #SESSION_STATE_IDLE state must be generated as the first such event for the new session.
[kotlinc]
[kotlinc] The runtime must return #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING (#ERROR_VALIDATION_FAILURE may be returned due to legacy behavior) on calls to #CreateSession() if a function named like {@code xrGet*GraphicsRequirements} has not been called for the same {@code instance} and ##XrSessionCreateInfo{@code ::systemId}. (See graphics binding extensions for details.)
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrSessionCreateInfo structure
[kotlinc] - {@code session} must be a pointer to an {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc] - #ERROR_INITIALIZATION_FAILED
[kotlinc] - #ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING
[kotlinc] - #ERROR_GRAPHICS_DEVICE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtensionProperties, ##XrSessionCreateInfo, #BeginSession(), #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSessionCreateInfo.const.p("createInfo", "a pointer to an ##XrSessionCreateInfo structure containing information about how to create the session."),
[kotlinc] Check(1)..XrSession.p("session", "a pointer to a handle in which the created {@code XrSession} is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySession",
[kotlinc] """
[kotlinc] Destroys an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySession() function is defined as.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] {@code XrSession} handles are destroyed using #DestroySession(). When an {@code XrSession} is destroyed, all handles that are children of that {@code XrSession} are also destroyed.
[kotlinc]
[kotlinc] The application is responsible for ensuring that it has no calls using {@code session} in progress when the session is destroyed.
[kotlinc]
[kotlinc] #DestroySession() can be called when the session is in any session state.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code session}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #BeginSession(), #CreateSession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] // Space
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateReferenceSpaces",
[kotlinc] """
[kotlinc] Enumerate available reference spaces.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateReferenceSpaces() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateReferenceSpaces(
[kotlinc] ? XrSession session,
[kotlinc] ? uint32_t spaceCapacityInput,
[kotlinc] ? uint32_t* spaceCountOutput,
[kotlinc] ? XrReferenceSpaceType* spaces);
[kotlinc]
[kotlinc] Description
[kotlinc] Enumerates the set of reference space types that this runtime supports for a given session. Runtimes must always return identical buffer contents from this enumeration for the lifetime of the session.
[kotlinc]
[kotlinc] If a session enumerates support for a given reference space type, calls to #CreateReferenceSpace() must succeed for that session, with any transient unavailability of poses expressed later during calls to #LocateSpace().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code spaceCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code spaceCapacityInput} is not 0, {@code spaces} must be a pointer to an array of {@code spaceCapacityInput} {@code XrReferenceSpaceType} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] AutoSize("spaces")..uint32_t("spaceCapacityInput", "the capacity of the spaces array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("spaceCountOutput", "a pointer to the count of spaces written, or a pointer to the required capacity in the case that {@code spaceCapacityInput} is 0."),
[kotlinc] nullable..XrReferenceSpaceType.p("spaces", "a pointer to an application-allocated array that will be filled with the enumerant of each supported reference space. It can be {@code NULL} if {@code spaceCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateReferenceSpace",
[kotlinc] """
[kotlinc] Creates a reference space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateReferenceSpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateReferenceSpace(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrReferenceSpaceCreateInfo* createInfo,
[kotlinc] ? XrSpace* space);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSpace} handle based on a chosen reference space. Application can provide an ##XrPosef to define the position and orientation of the new space?s origin within the natural reference frame of the reference space.
[kotlinc]
[kotlinc] Multiple {@code XrSpace} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSpace} handle must be eventually freed via the #DestroySpace() function.
[kotlinc]
[kotlinc] The runtime must return #ERROR_REFERENCE_SPACE_UNSUPPORTED if the given reference space type is not supported by this {@code session}.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrReferenceSpaceCreateInfo structure
[kotlinc] - {@code space} must be a pointer to an {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_REFERENCE_SPACE_UNSUPPORTED
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrReferenceSpaceCreateInfo, #DestroySpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] XrReferenceSpaceCreateInfo.const.p("createInfo", "the ##XrReferenceSpaceCreateInfo used to specify the space."),
[kotlinc] Check(1)..XrSpace.p("space", "the returned space handle.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetReferenceSpaceBoundsRect",
[kotlinc] """
[kotlinc] Gets the bounds rectangle of a reference space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] XR systems may have limited real world spatial ranges in which users can freely move around while remaining tracked. Applications may wish to query these boundaries and alter application behavior or content placement to ensure the user can complete the experience while remaining within the boundary. Applications can query this information using #GetReferenceSpaceBoundsRect().
[kotlinc]
[kotlinc] When called, #GetReferenceSpaceBoundsRect() should return the extents of a rectangle that is clear of obstacles down to the floor, allowing where the user can freely move while remaining tracked, if available for that reference space. The returned extent represents the dimensions of an axis-aligned bounding box where the ##XrExtent2Df{@code ::width} and ##XrExtent2Df{@code ::height} fields correspond to the X and Z axes of the provided space, with the extents centered at the origin of the space. Not all systems or spaces may support boundaries. If a runtime is unable to provide bounds for a given space, #SPACE_BOUNDS_UNAVAILABLE will be returned and all fields of {@code bounds} will be set to 0.
[kotlinc]
[kotlinc] The returned extents are expressed relative to the natural origin of the provided {@code XrReferenceSpaceType} and must not incorporate any origin offsets specified by the application during calls to #CreateReferenceSpace().
[kotlinc]
[kotlinc] The runtime must return #ERROR_REFERENCE_SPACE_UNSUPPORTED if the {@code XrReferenceSpaceType} passed in {@code createInfo} is not supported by this {@code session}.
[kotlinc]
[kotlinc] When a runtime will begin operating with updated space bounds, the runtime must queue a corresponding ##XrEventDataReferenceSpaceChangePending event.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetReferenceSpaceBoundsRect(
[kotlinc] ? XrSession session,
[kotlinc] ? XrReferenceSpaceType referenceSpaceType,
[kotlinc] ? XrExtent2Df* bounds);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code referenceSpaceType} must be a valid {@code XrReferenceSpaceType} value
[kotlinc] - {@code bounds} must be a pointer to an ##XrExtent2Df structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SPACE_BOUNDS_UNAVAILABLE
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_FUNCTION_UNSUPPORTED
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_REFERENCE_SPACE_UNSUPPORTED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrExtent2Df, #CreateReferenceSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to an {@code XrSession} previously created with #CreateSession()."),
[kotlinc] XrReferenceSpaceType("referenceSpaceType", "the reference space type whose bounds should be retrieved."),
[kotlinc] XrExtent2Df.p("bounds", "the returned space extents.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateActionSpace",
[kotlinc] """
[kotlinc] Creates a space based on a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateActionSpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateActionSpace(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionSpaceCreateInfo* createInfo,
[kotlinc] ? XrSpace* space);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSpace} handle based on a chosen pose action. Application can provide an ##XrPosef to define the position and orientation of the new space?s origin within the natural reference frame of the action space.
[kotlinc]
[kotlinc] Multiple {@code XrSpace} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSpace} handle must be eventually freed via the #DestroySpace() function or by destroying the parent {@code XrAction} handle.
[kotlinc]
[kotlinc] The runtime must return #ERROR_ACTION_TYPE_MISMATCH if the action provided in {@code action} is not of type #ACTION_TYPE_POSE_INPUT.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionSpaceCreateInfo structure
[kotlinc] - {@code space} must be a pointer to an {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionSpaceCreateInfo, #DestroySpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to create the action space in."),
[kotlinc] XrActionSpaceCreateInfo.const.p("createInfo", "the ##XrActionSpaceCreateInfo used to specify the space."),
[kotlinc] Check(1)..XrSpace.p("space", "the returned space handle.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "LocateSpace",
[kotlinc] """
[kotlinc] Locates a space with reference to another space.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #LocateSpace() provides the physical location of a space in a base space at a specified time, if currently known by the runtime.
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrLocateSpace(
[kotlinc] ? XrSpace space,
[kotlinc] ? XrSpace baseSpace,
[kotlinc] ? XrTime time,
[kotlinc] ? XrSpaceLocation* location);
[kotlinc]
[kotlinc] Description
[kotlinc] For a {@code time} in the past, the runtime should locate the spaces based on the runtime?s most accurate current understanding of how the world was at that historical time.
[kotlinc]
[kotlinc] For a {@code time} in the future, the runtime should locate the spaces based on the runtime?s most up-to-date prediction of how the world will be at that future time.
[kotlinc]
[kotlinc] The minimum valid range of values for {@code time} are described in prediction-time-limits. For values of {@code time} outside this range, #LocateSpace() may return a location with no position and #SPACE_LOCATION_POSITION_VALID_BIT unset.
[kotlinc]
[kotlinc] Some devices improve their understanding of the world as the device is used. The location returned by #LocateSpace() for a given {@code space}, {@code baseSpace} and {@code time} may change over time, even for spaces that track static objects, as one or both spaces adjust their origins.
[kotlinc]
[kotlinc] During tracking loss of {@code space} relative to {@code baseSpace}, runtimes should continue to provide inferred or last-known {@code position} and {@code orientation} values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set #SPACE_LOCATION_POSITION_VALID_BIT but it can clear #SPACE_LOCATION_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.
[kotlinc]
[kotlinc] If the runtime has not yet observed even a last-known pose for how to locate {@code space} in {@code baseSpace} (e.g. one space is an action space bound to a motion controller that has not yet been detected, or the two spaces are in disconnected fragments of the runtime?s tracked volume), the runtime should return a location with no position and #SPACE_LOCATION_POSITION_VALID_BIT unset.
[kotlinc]
[kotlinc] The runtime must return a location with both #SPACE_LOCATION_POSITION_VALID_BIT and #SPACE_LOCATION_POSITION_TRACKED_BIT set when locating {@code space} and {@code baseSpace} if both spaces were created relative to the same entity (e.g. two action spaces for the same action), even if the entity is currently untracked. The location in this case is the difference in the two spaces' application-specified transforms relative to that common entity.
[kotlinc]
[kotlinc] The runtime should return a location with #SPACE_LOCATION_POSITION_VALID_BIT set and #SPACE_LOCATION_POSITION_TRACKED_BIT unset for spaces tracking two static entities in the world when their relative pose is known to the runtime. This enables applications to make use of the runtime?s latest knowledge of the world, even during tracking loss.
[kotlinc]
[kotlinc] If an ##XrSpaceVelocity structure is chained to the {@code next} pointer of ##XrSpaceLocation and the velocity is observed or can be calculated by the runtime, the runtime must fill in the linear velocity of the origin of space within the reference frame of {@code baseSpace} and set the #SPACE_VELOCITY_LINEAR_VALID_BIT. Similarly, if an ##XrSpaceVelocity structure is chained to the {@code next} pointer of ##XrSpaceLocation and the angular velocity is observed or can be calculated by the runtime, the runtime must fill in the angular velocity of the origin of space within the reference frame of {@code baseSpace} and set the #SPACE_VELOCITY_ANGULAR_VALID_BIT.
[kotlinc]
[kotlinc] The following example code shows how an application can get both the location and velocity of a space within a base space using the #LocateSpace() function by chaining an ##XrSpaceVelocity to the next pointer of ##XrSpaceLocation and calling #LocateSpace().
[kotlinc]
[kotlinc]
[kotlinc] ?XrSpace space; // previously initialized
[kotlinc] ?XrSpace baseSpace; // previously initialized
[kotlinc] ?XrTime time; // previously initialized
[kotlinc] ?
[kotlinc] ?XrSpaceVelocity velocity {XR_TYPE_SPACE_VELOCITY};
[kotlinc] ?XrSpaceLocation location {XR_TYPE_SPACE_LOCATION, &velocity};
[kotlinc] ?xrLocateSpace(space, baseSpace, time, &location);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code space} must be a valid {@code XrSpace} handle
[kotlinc] - {@code baseSpace} must be a valid {@code XrSpace} handle
[kotlinc] - {@code location} must be a pointer to an ##XrSpaceLocation structure
[kotlinc] - Both of {@code baseSpace} and {@code space} must have been created, allocated, or retrieved from the same {@code XrSession}
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSpaceLocation
[kotlinc] """,
[kotlinc]
[kotlinc] XrSpace("space", "identifies the target space to locate."),
[kotlinc] XrSpace("baseSpace", "identifies the underlying space in which to locate {@code space}."),
[kotlinc] XrTime("time", "the time for which the location should be provided."),
[kotlinc] XrSpaceLocation.p("location", "provides the location of {@code space} in {@code baseSpace}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySpace",
[kotlinc] """
[kotlinc] Creates a space based on a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySpace() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySpace(
[kotlinc] ? XrSpace space);
[kotlinc]
[kotlinc] Description
[kotlinc] {@code XrSpace} handles are destroyed using #DestroySpace(). The runtime may still use this space if there are active dependencies (e.g, compositions in progress).
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code space} must be a valid {@code XrSpace} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code space}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateActionSpace(), #CreateReferenceSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSpace("space", "a handle to an {@code XrSpace} previously created by a function such as #CreateReferenceSpace().")
[kotlinc] )
[kotlinc]
[kotlinc] // ViewConfigurations
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateViewConfigurations",
[kotlinc] """
[kotlinc] Enumerates supported view configurations.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateViewConfigurations() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateViewConfigurations(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? uint32_t viewConfigurationsTypeCapacityInput,
[kotlinc] ? uint32_t* viewConfigurationsTypeCountOutput,
[kotlinc] ? XrViewConfigurationType* viewConfigurationsTypes);
[kotlinc]
[kotlinc] Description
[kotlinc] #EnumerateViewConfigurations() enumerates the view configuration types supported by the {@code XrSystemId}. The supported set for that system must not change during the lifetime of its {@code XrInstance}. The returned list of primary view configurations should be in order from what the runtime considered highest to lowest user preference. Thus the first enumerated view configuration type should be the one the runtime prefers the application to use if possible.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationsTypeCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewConfigurationsTypeCapacityInput} is not 0, {@code viewConfigurationsTypes} must be a pointer to an array of {@code viewConfigurationsTypeCapacityInput} {@code XrViewConfigurationType} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configurations will be enumerated."),
[kotlinc] AutoSize("viewConfigurationsTypes")..uint32_t("viewConfigurationsTypeCapacityInput", "the capacity of the {@code viewConfigurations} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("viewConfigurationsTypeCountOutput", "a pointer to the count of {@code viewConfigurations} written, or a pointer to the required capacity in the case that {@code viewConfigurationsTypeCapacityInput} is 0."),
[kotlinc] nullable..XrViewConfigurationType.p("viewConfigurationsTypes", "a pointer to an array of {@code XrViewConfigurationType} values, but can be {@code NULL} if {@code viewConfigurationsTypeCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetViewConfigurationProperties",
[kotlinc] """
[kotlinc] Gets information for a view configuration.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetViewConfigurationProperties() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetViewConfigurationProperties(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? XrViewConfigurationProperties* configurationProperties);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetViewConfigurationProperties() queries properties of an individual view configuration. Applications must use one of the supported view configuration types returned by #EnumerateViewConfigurations(). If {@code viewConfigurationType} is not supported by this {@code XrInstance} the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code configurationProperties} must be a pointer to an ##XrViewConfigurationProperties structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrViewConfigurationProperties
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configuration is being queried."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} of the configuration to get."),
[kotlinc] XrViewConfigurationProperties.p("configurationProperties", "a pointer to view configuration properties to return.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateViewConfigurationViews",
[kotlinc] """
[kotlinc] Gets view configuration views.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateViewConfigurationViews() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateViewConfigurationViews(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrSystemId systemId,
[kotlinc] ? XrViewConfigurationType viewConfigurationType,
[kotlinc] ? uint32_t viewCapacityInput,
[kotlinc] ? uint32_t* viewCountOutput,
[kotlinc] ? XrViewConfigurationView* views);
[kotlinc]
[kotlinc] Description
[kotlinc] Each {@code XrViewConfigurationType} defines the number of views associated with it. Applications can query more details of each view element using #EnumerateViewConfigurationViews(). If the supplied {@code viewConfigurationType} is not supported by this {@code XrInstance} and {@code XrSystemId}, the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the given {@code systemId} and {@code viewConfigurationType} for the lifetime of the instance.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code viewConfigurationType} must be a valid {@code XrViewConfigurationType} value
[kotlinc] - {@code viewCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewCapacityInput} is not 0, {@code views} must be a pointer to an array of {@code viewCapacityInput} ##XrViewConfigurationView structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SYSTEM_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrViewConfigurationView, #GetViewConfigurationProperties()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the instance from which {@code systemId} was retrieved."),
[kotlinc] XrSystemId("systemId", "the {@code XrSystemId} whose view configuration is being queried."),
[kotlinc] XrViewConfigurationType("viewConfigurationType", "the {@code XrViewConfigurationType} of the configuration to get."),
[kotlinc] AutoSize("views")..uint32_t("viewCapacityInput", "the capacity of the {@code views} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("viewCountOutput", "a pointer to the count of {@code views} written, or a pointer to the required capacity in the case that {@code viewCapacityInput} is 0."),
[kotlinc] nullable..XrViewConfigurationView.p("views", "a pointer to an array of ##XrViewConfigurationView values, but can be {@code NULL} if {@code viewCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Image
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateSwapchainFormats",
[kotlinc] """
[kotlinc] Enumerates swapchain formats.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateSwapchainFormats() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateSwapchainFormats(
[kotlinc] ? XrSession session,
[kotlinc] ? uint32_t formatCapacityInput,
[kotlinc] ? uint32_t* formatCountOutput,
[kotlinc] ? int64_t* formats);
[kotlinc]
[kotlinc] Description
[kotlinc] #EnumerateSwapchainFormats() enumerates the texture formats supported by the current session. The type of formats returned are dependent on the graphics API specified in #CreateSession(). For example, if a DirectX graphics API was specified, then the enumerated formats correspond to the DXGI formats, such as {@code DXGI_FORMAT_R8G8B8A8_UNORM_SRGB}. Texture formats should be in order from highest to lowest runtime preference. The application should use the highest preference format that it supports for optimal performance and quality.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the lifetime of the session.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code formatCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code formatCapacityInput} is not 0, {@code formats} must be a pointer to an array of {@code formatCapacityInput} {@code int64_t} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session that enumerates the supported formats."),
[kotlinc] AutoSize("formats")..uint32_t("formatCapacityInput", "the capacity of the {@code formats}, or 0 to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("formatCountOutput", "a pointer to the count of {@code uint64_t} formats written, or a pointer to the required capacity in the case that {@code formatCapacityInput} is 0."),
[kotlinc] nullable..int64_t.p("formats", "a pointer to an array of {@code int64_t} format ids, but can be {@code NULL} if {@code formatCapacityInput} is 0. The format ids are specific to the specified graphics API.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateSwapchain",
[kotlinc] """
[kotlinc] Creates an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateSwapchain() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateSwapchain(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSwapchainCreateInfo* createInfo,
[kotlinc] ? XrSwapchain* swapchain);
[kotlinc]
[kotlinc] Description
[kotlinc] Creates an {@code XrSwapchain} handle. The returned swapchain handle may be subsequently used in API calls. Multiple {@code XrSwapchain} handles may exist simultaneously, up to some limit imposed by the runtime. The {@code XrSwapchain} handle must be eventually freed via the #DestroySwapchain() function. The runtime must return #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED if the image format specified in the ##XrSwapchainCreateInfo is unsupported. The runtime must return #ERROR_FEATURE_UNSUPPORTED if any bit of the create flags specified in the ##XrSwapchainCreateInfo is unsupported.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrSwapchainCreateInfo structure
[kotlinc] - {@code swapchain} must be a pointer to an {@code XrSwapchain} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED
[kotlinc] - #ERROR_FEATURE_UNSUPPORTED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainCreateInfo, #AcquireSwapchainImage(), #DestroySwapchain(), #EnumerateSwapchainFormats(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the session that creates the image."),
[kotlinc] XrSwapchainCreateInfo.const.p("createInfo", "a pointer to an ##XrSwapchainCreateInfo structure containing parameters to be used to create the image."),
[kotlinc] Check(1)..XrSwapchain.p("swapchain", "a pointer to a handle in which the created {@code XrSwapchain} is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroySwapchain",
[kotlinc] """
[kotlinc] Destroys an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroySwapchain() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroySwapchain(
[kotlinc] ? XrSwapchain swapchain);
[kotlinc]
[kotlinc] Description
[kotlinc] All submitted graphics API commands that refer to {@code swapchain} must have completed execution. Runtimes may continue to utilize swapchain images after #DestroySwapchain() is called.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code swapchain}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateSwapchainImages",
[kotlinc] """
[kotlinc] Gets images from an XrSwapchain.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateSwapchainImages() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateSwapchainImages(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? uint32_t imageCapacityInput,
[kotlinc] ? uint32_t* imageCountOutput,
[kotlinc] ? XrSwapchainImageBaseHeader* images);
[kotlinc]
[kotlinc] Description
[kotlinc] Fills an array of graphics API-specific {@code XrSwapchainImage} structures. The resources must be constant and valid for the lifetime of the {@code XrSwapchain}.
[kotlinc]
[kotlinc] Runtimes must always return identical buffer contents from this enumeration for the lifetime of the swapchain.
[kotlinc]
[kotlinc] Note: {@code images} is a pointer to an array of structures of graphics API-specific type, not an array of structure pointers.
[kotlinc]
[kotlinc] The pointer submitted as {@code images} will be treated as an array of the expected graphics API-specific type based on the graphics API used at session creation time. If the {@code type} member of any array element accessed in this way does not match the expected value, the runtime must return #ERROR_VALIDATION_FAILURE.
[kotlinc]
[kotlinc] Note
[kotlinc] Under a typical memory model, a runtime must treat the supplied pointer as an opaque blob beginning with ##XrSwapchainImageBaseHeader, until after it has verified the {@code type}.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - {@code imageCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code imageCapacityInput} is not 0, {@code images} must be a pointer to an array of {@code imageCapacityInput} ##XrSwapchainImageBaseHeader-based structures. See also: ##XrSwapchainImageOpenGLESKHR, ##XrSwapchainImageOpenGLKHR, ##XrSwapchainImageVulkanKHR
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageBaseHeader, #CreateSwapchain()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the {@code XrSwapchain} to get images from."),
[kotlinc] AutoSize("images")..uint32_t("imageCapacityInput", "the capacity of the {@code images} array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("imageCountOutput", "a pointer to the count of {@code images} written, or a pointer to the required capacity in the case that {@code imageCapacityInput} is 0."),
[kotlinc] nullable..XrSwapchainImageBaseHeader.p("images", "a pointer to an array of graphics API-specific {@code XrSwapchainImage} structures, all of the same type, based on ##XrSwapchainImageBaseHeader. It can be {@code NULL} if {@code imageCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "AcquireSwapchainImage",
[kotlinc] """
[kotlinc] Acquire a swapchain image.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #AcquireSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrAcquireSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageAcquireInfo* acquireInfo,
[kotlinc] ? uint32_t* index);
[kotlinc]
[kotlinc] Description
[kotlinc] Acquires the image corresponding to the {@code index} position in the array returned by #EnumerateSwapchainImages(). The runtime must return #ERROR_CALL_ORDER_INVALID if the next available index has already been acquired and not yet released with #ReleaseSwapchainImage(). If the {@code swapchain} was created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags}, this function must not have been previously called for this swapchain. The runtime must return #ERROR_CALL_ORDER_INVALID if a {@code swapchain} created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags} and this function has been successfully called previously for this swapchain.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - If {@code acquireInfo} is not {@code NULL}, {@code acquireInfo} must be a pointer to a valid ##XrSwapchainImageAcquireInfo structure
[kotlinc] - {@code index} must be a pointer to a {@code uint32_t} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageAcquireInfo, #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage(), #WaitSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain from which to acquire an image."),
[kotlinc] nullable..XrSwapchainImageAcquireInfo.const.p("acquireInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrSwapchainImageAcquireInfo."),
[kotlinc] Check(1)..uint32_t.p("index", "the returned image index that has been acquired.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "WaitSwapchainImage",
[kotlinc] """
[kotlinc] Wait for a swapchain image to be available.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #WaitSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrWaitSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageWaitInfo* waitInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] Before an application can begin writing to a swapchain image, it must first wait on the image to avoid writing to it before the compositor has finished reading from it. #WaitSwapchainImage() will implicitly wait on the oldest acquired swapchain image which has not yet been successfully waited on. Once a swapchain image has been successfully waited on without timeout, the app must release before waiting on the next acquired swapchain image.
[kotlinc]
[kotlinc] This function may block for longer than the timeout specified in ##XrSwapchainImageWaitInfo due to scheduling or contention.
[kotlinc]
[kotlinc] If the timeout expires without the image becoming available for writing, #TIMEOUT_EXPIRED must be returned. If #WaitSwapchainImage() returns #TIMEOUT_EXPIRED, the next call to #WaitSwapchainImage() will wait on the same image index again until the function succeeds with #SUCCESS. Note that this is not an error code; {@code XR_SUCCEEDED(#TIMEOUT_EXPIRED)} is {@code true}.
[kotlinc]
[kotlinc] The runtime must eventually relinquish ownership of a swapchain image to the application and must not block indefinitely.
[kotlinc]
[kotlinc] The runtime must return #ERROR_CALL_ORDER_INVALID if no image has been acquired by calling #AcquireSwapchainImage().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - {@code waitInfo} must be a pointer to a valid ##XrSwapchainImageWaitInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #TIMEOUT_EXPIRED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageWaitInfo, #AcquireSwapchainImage(), #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #ReleaseSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the swapchain from which to wait for an image."),
[kotlinc] XrSwapchainImageWaitInfo.const.p("waitInfo", "a pointer to an ##XrSwapchainImageWaitInfo structure.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ReleaseSwapchainImage",
[kotlinc] """
[kotlinc] Release a swapchain image.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #ReleaseSwapchainImage() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrReleaseSwapchainImage(
[kotlinc] ? XrSwapchain swapchain,
[kotlinc] ? const XrSwapchainImageReleaseInfo* releaseInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] If the {@code swapchain} was created with the #SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in ##XrSwapchainCreateInfo{@code ::createFlags} structure, this function must not have been previously called for this swapchain.
[kotlinc]
[kotlinc] The runtime must return #ERROR_CALL_ORDER_INVALID if no image has been waited on by calling #WaitSwapchainImage().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code swapchain} must be a valid {@code XrSwapchain} handle
[kotlinc] - If {@code releaseInfo} is not {@code NULL}, {@code releaseInfo} must be a pointer to a valid ##XrSwapchainImageReleaseInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSwapchainImageReleaseInfo, #AcquireSwapchainImage(), #CreateSwapchain(), #DestroySwapchain(), #EnumerateSwapchainImages(), #WaitSwapchainImage()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSwapchain("swapchain", "the {@code XrSwapchain} from which to release an image."),
[kotlinc] nullable..XrSwapchainImageReleaseInfo.const.p("releaseInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrSwapchainImageReleaseInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] // Session
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "BeginSession",
[kotlinc] """
[kotlinc] Begins an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #BeginSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrBeginSession(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSessionBeginInfo* beginInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] When the application receives ##XrEventDataSessionStateChanged event with the #SESSION_STATE_READY state, the application should then call #BeginSession() to start rendering frames for display to the user.
[kotlinc]
[kotlinc] After this function successfully returns, the session is considered to be running. The application should then start its frame loop consisting of some sequence of #WaitFrame()/#BeginFrame()/#EndFrame() calls.
[kotlinc]
[kotlinc] If the session is already running when the application calls #BeginSession(), the runtime must return error #ERROR_SESSION_RUNNING. If the session is not running when the application calls #BeginSession(), but the session is not yet in the #SESSION_STATE_READY state, the runtime must return error #ERROR_SESSION_NOT_READY.
[kotlinc]
[kotlinc] Note that a runtime may decide not to show the user any given frame from a session at any time, for example if the user has switched to a different application?s running session. The application should check whether #WaitFrame() returns an ##XrFrameState with {@code shouldRender} set to true before rendering a given frame to determine whether that frame will be visible to the user.
[kotlinc]
[kotlinc] Runtime session frame state must start in a reset state when a session transitions to running so that no state is carried over from when the same session was previously running.
[kotlinc]
[kotlinc] If {@code primaryViewConfigurationType} in {@code beginInfo} is not supported by the {@code XrSystemId} used to create the {@code session}, the runtime must return #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code beginInfo} must be a pointer to a valid ##XrSessionBeginInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_SESSION_RUNNING
[kotlinc] - #ERROR_SESSION_NOT_READY
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSessionBeginInfo, #CreateSession(), #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] XrSessionBeginInfo.const.p("beginInfo", "a pointer to an ##XrSessionBeginInfo structure.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EndSession",
[kotlinc] """
[kotlinc] Ends an XrSession.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EndSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEndSession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] When the application receives ##XrEventDataSessionStateChanged event with the #SESSION_STATE_STOPPING state, the application should stop its frame loop and then call #EndSession() to end the running session. This function signals to the runtime that the application will no longer call #WaitFrame(), #BeginFrame() or #EndFrame() from any thread allowing the runtime to safely transition the session to #SESSION_STATE_IDLE. The application must also avoid reading input state or sending haptic output after calling #EndSession().
[kotlinc]
[kotlinc] If the session is not running when the application calls #EndSession(), the runtime must return error #ERROR_SESSION_NOT_RUNNING. If the session is still running when the application calls #EndSession(), but the session is not yet in the #SESSION_STATE_STOPPING state, the runtime must return error #ERROR_SESSION_NOT_STOPPING.
[kotlinc]
[kotlinc] If the application wishes to exit a running session, the application can call #RequestExitSession() so that the session transitions from #SESSION_STATE_IDLE to #SESSION_STATE_EXITING.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_STOPPING
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #BeginSession(), #CreateSession(), #DestroySession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to a running {@code XrSession}.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "RequestExitSession",
[kotlinc] """
[kotlinc] Request to exit a running session.
[kotlinc]
[kotlinc] C Specification
[kotlinc] When an application wishes to exit a running session, it can call #RequestExitSession(), requesting that the runtime transition through the various intermediate session states including #SESSION_STATE_STOPPING to #SESSION_STATE_EXITING.
[kotlinc]
[kotlinc] On platforms where an application?s lifecycle is managed by the system, session state changes may be implicitly triggered by application lifecycle state changes. On such platforms, using platform-specific methods to alter application lifecycle state may be the preferred method of provoking session state changes. The behavior of #RequestExitSession() is not altered, however explicit session exit may not interact with the platform-specific application lifecycle.
[kotlinc]
[kotlinc] The #RequestExitSession() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrRequestExitSession(
[kotlinc] ? XrSession session);
[kotlinc]
[kotlinc] Description
[kotlinc] If {@code session} is not running when #RequestExitSession() is called, #ERROR_SESSION_NOT_RUNNING must be returned.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #DestroySession(), #EndSession()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to a running {@code XrSession}.")
[kotlinc] )
[kotlinc]
[kotlinc] // Display Timing
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "WaitFrame",
[kotlinc] """
[kotlinc] Frame timing function.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #WaitFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrWaitFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameWaitInfo* frameWaitInfo,
[kotlinc] ? XrFrameState* frameState);
[kotlinc]
[kotlinc] Description
[kotlinc] #WaitFrame() throttles the application frame loop in order to synchronize application frame submissions with the display. #WaitFrame() returns a predicted display time for the next time that the runtime predicts a composited frame will be displayed. The runtime may affect this computation by changing the return values and throttling of #WaitFrame() in response to feedback from frame submission and completion times in #EndFrame(). An application must eventually match each #WaitFrame() call with one call to #BeginFrame(). A subsequent #WaitFrame() call must block until the previous frame has been begun with #BeginFrame() and must unblock independently of the corresponding call to #EndFrame(). When less than one frame interval has passed since the previous return from #WaitFrame(), the runtime should block until the beginning of the next frame interval. If more than one frame interval has passed since the last return from #WaitFrame(), the runtime may return immediately or block until the beginning of the next frame interval.
[kotlinc]
[kotlinc] In the case that an application has pipelined frame submissions, the application should compute the appropriate target display time using both the predicted display time and predicted display interval. The application should use the computed target display time when requesting space and view locations for rendering.
[kotlinc]
[kotlinc] The ##XrFrameState{@code ::predictedDisplayTime} returned by #WaitFrame() must be monotonically increasing.
[kotlinc]
[kotlinc] The runtime may dynamically adjust the start time of the frame interval relative to the display hardware?s refresh cycle to minimize graphics processor contention between the application and the compositor.
[kotlinc]
[kotlinc] #WaitFrame() must be callable from any thread, including a different thread than #BeginFrame()/#EndFrame() are being called from.
[kotlinc]
[kotlinc] Calling #WaitFrame() must be externally synchronized by the application, concurrent calls may result in undefined behavior.
[kotlinc]
[kotlinc] The runtime must return #ERROR_SESSION_NOT_RUNNING if the {@code session} is not running.
[kotlinc]
[kotlinc] Note
[kotlinc] The engine simulation should advance based on the display time. Every stage in the engine pipeline should use the exact same display time for one particular application-generated frame. An accurate and consistent display time across all stages and threads in the engine pipeline is important to avoid object motion judder. If the application has multiple pipeline stages, the application should pass its computed display time through its pipeline, as #WaitFrame() must be called only once per frame.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - If {@code frameWaitInfo} is not {@code NULL}, {@code frameWaitInfo} must be a pointer to a valid ##XrFrameWaitInfo structure
[kotlinc] - {@code frameState} must be a pointer to an ##XrFrameState structure
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to the {@code session} parameter by any other #WaitFrame() call must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameState, ##XrFrameWaitInfo, #BeginFrame(), #EndFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] nullable..XrFrameWaitInfo.const.p("frameWaitInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrFrameWaitInfo."),
[kotlinc] XrFrameState.p("frameState", "a pointer to a valid ##XrFrameState, an output parameter.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "BeginFrame",
[kotlinc] """
[kotlinc] Marks a frame.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #BeginFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrBeginFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameBeginInfo* frameBeginInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #BeginFrame() is called prior to the start of frame rendering. The application should still call #BeginFrame() but omit rendering work for the frame if ##XrFrameState{@code ::shouldRender} is #FALSE.
[kotlinc]
[kotlinc] Runtimes must not perform frame synchronization or throttling through the #BeginFrame() function and should instead do so through #WaitFrame().
[kotlinc]
[kotlinc] The runtime must return the error code #ERROR_CALL_ORDER_INVALID if there was no corresponding successful call to #WaitFrame().
[kotlinc]
[kotlinc] The runtime must return the success code #FRAME_DISCARDED if a prior #BeginFrame() has been called without an intervening call to #EndFrame().
[kotlinc]
[kotlinc] The runtime must return #ERROR_SESSION_NOT_RUNNING if the {@code session} is not running.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - If {@code frameBeginInfo} is not {@code NULL}, {@code frameBeginInfo} must be a pointer to a valid ##XrFrameBeginInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #FRAME_DISCARDED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameBeginInfo, #EndFrame(), #WaitFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] nullable..XrFrameBeginInfo.const.p("frameBeginInfo", "exists for extensibility purposes, it is {@code NULL} or a pointer to a valid ##XrFrameBeginInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EndFrame",
[kotlinc] """
[kotlinc] Marks a frame.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EndFrame() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEndFrame(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrFrameEndInfo* frameEndInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #EndFrame() may return immediately to the application. ##XrFrameEndInfo{@code ::displayTime} should be computed using values returned by #WaitFrame(). The runtime should be robust against variations in the timing of calls to #WaitFrame(), since a pipelined system may call #WaitFrame() on a separate thread from #BeginFrame() and #EndFrame() without any synchronization guarantees.
[kotlinc]
[kotlinc] Note
[kotlinc] An accurate predicted display time is very important to avoid black pull-in by reprojection and to reduce motion judder in case the runtime does not implement a translational reprojection. Reprojection should never display images before the display refresh period they were predicted for, even if they are completed early, because this will cause motion judder just the same. In other words, the better the predicted display time, the less latency experienced by the user.
[kotlinc]
[kotlinc]
[kotlinc] Every call to #EndFrame() must be preceded by a successful call to #BeginFrame(). Failure to do so must result in #ERROR_CALL_ORDER_INVALID being returned by #EndFrame(). ##XrFrameEndInfo may reference swapchains into which the application has rendered for this frame. From each {@code XrSwapchain} only one image index is implicitly referenced per frame, the one corresponding to the last call to #ReleaseSwapchainImage(). However, a specific swapchain (and by extension a specific swapchain image index) may be referenced in ##XrFrameEndInfo multiple times. This can be used for example to render a side by side image into a single swapchain image and referencing it twice with differing image rectangles in different layers.
[kotlinc]
[kotlinc] If no layers are provided then the display must be cleared.
[kotlinc]
[kotlinc] #ERROR_LAYER_INVALID must be returned if an unknown, unsupported layer type, or {@code NULL} pointer is passed as one of the ##XrFrameEndInfo::layers.
[kotlinc]
[kotlinc] #ERROR_LAYER_INVALID must be returned if a layer references a swapchain that has no released swapchain image.
[kotlinc]
[kotlinc] #ERROR_LAYER_LIMIT_EXCEEDED must be returned if ##XrFrameEndInfo::layerCount exceeds ##XrSystemGraphicsProperties::maxLayerCount or if the runtime is unable to composite the specified layers due to resource constraints.
[kotlinc]
[kotlinc] #ERROR_SWAPCHAIN_RECT_INVALID must be returned if ##XrFrameEndInfo::layers contains a composition layer which references pixels outside of the associated swapchain image or if negatively sized.
[kotlinc]
[kotlinc] #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED must be returned if ##XrFrameEndInfo::environmentBlendMode is not supported.
[kotlinc]
[kotlinc] #ERROR_SESSION_NOT_RUNNING must be returned if the {@code session} is not running.
[kotlinc]
[kotlinc] Note
[kotlinc] Applications should discard frames for which #EndFrame() returns a recoverable error over attempting to resubmit the frame with different frame parameters to provide a more consistent experience across different runtime implementations.
[kotlinc]
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code frameEndInfo} must be a pointer to a valid ##XrFrameEndInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc] - #ERROR_SWAPCHAIN_RECT_INVALID
[kotlinc] - #ERROR_SESSION_NOT_RUNNING
[kotlinc] - #ERROR_POSE_INVALID
[kotlinc] - #ERROR_LAYER_LIMIT_EXCEEDED
[kotlinc] - #ERROR_LAYER_INVALID
[kotlinc] - #ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED
[kotlinc] - #ERROR_CALL_ORDER_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrFrameEndInfo, #BeginFrame(), #WaitFrame()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a valid {@code XrSession} handle."),
[kotlinc] XrFrameEndInfo.const.p("frameEndInfo", "a pointer to a valid ##XrFrameEndInfo.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "LocateViews",
[kotlinc] """
[kotlinc] Gets view and projection info.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #LocateViews() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrLocateViews(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrViewLocateInfo* viewLocateInfo,
[kotlinc] ? XrViewState* viewState,
[kotlinc] ? uint32_t viewCapacityInput,
[kotlinc] ? uint32_t* viewCountOutput,
[kotlinc] ? XrView* views);
[kotlinc]
[kotlinc] Description
[kotlinc] The #LocateViews() function returns the view and projection info for a particular display time. This time is typically the target display time for a given frame. Repeatedly calling #LocateViews() with the same time may not necessarily return the same result. Instead the prediction gets increasingly accurate as the function is called closer to the given time for which a prediction is made. This allows an application to get the predicted views as late as possible in its pipeline to get the least amount of latency and prediction error.
[kotlinc]
[kotlinc] #LocateViews() returns an array of ##XrView elements, one for each view of the specified view configuration type, along with an ##XrViewState containing additional state data shared across all views. The eye each view corresponds to is statically defined in {@code XrViewConfigurationType} in case the application wants to apply eye-specific rendering traits. The ##XrViewState and ##XrView member data may change on subsequent calls to #LocateViews(), and so applications must not assume it to be constant.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code viewLocateInfo} must be a pointer to a valid ##XrViewLocateInfo structure
[kotlinc] - {@code viewState} must be a pointer to an ##XrViewState structure
[kotlinc] - {@code viewCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code viewCapacityInput} is not 0, {@code views} must be a pointer to an array of {@code viewCapacityInput} ##XrView structures
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED
[kotlinc] - #ERROR_TIME_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrView, ##XrViewLocateInfo, ##XrViewState
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the provided {@code XrSession}."),
[kotlinc] XrViewLocateInfo.const.p("viewLocateInfo", "a pointer to a valid ##XrViewLocateInfo structure."),
[kotlinc] XrViewState.p("viewState", "the output structure with the viewer state information."),
[kotlinc] AutoSize("views")..uint32_t("viewCapacityInput", "an input parameter which specifies the capacity of the {@code views} array. The required capacity must be same as defined by the corresponding {@code XrViewConfigurationType}."),
[kotlinc] Check(1)..uint32_t.p("viewCountOutput", "an output parameter which identifies the valid count of {@code views}."),
[kotlinc] nullable..XrView.p("views", "an array of ##XrView.")
[kotlinc] )
[kotlinc]
[kotlinc] // Semantic Paths
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StringToPath",
[kotlinc] """
[kotlinc] Converts a string to a semantic path.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StringToPath() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStringToPath(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const char* pathString,
[kotlinc] ? XrPath* path);
[kotlinc]
[kotlinc] Description
[kotlinc] #StringToPath() retrieves the {@code XrPath} value for a well-formed path string. If such a value had not yet been assigned by the runtime to the provided path string in this {@code XrInstance}, one must be assigned at this point. All calls to this function with the same {@code XrInstance} and path string must retrieve the same {@code XrPath} value. Upon failure, #StringToPath() must return an appropriate {@code XrResult}, and may set the output parameter to #NULL_PATH. See Path Atom Type for the conditions under which an error may be returned when this function is given a valid {@code XrInstance} and a well-formed path string.
[kotlinc]
[kotlinc] If the runtime?s resources are exhausted and it cannot create the path, a return value of #ERROR_PATH_COUNT_EXCEEDED must be returned. If the application specifies a string that is not a well-formed path string, #ERROR_PATH_FORMAT_INVALID must be returned.
[kotlinc]
[kotlinc] A return value of #SUCCESS from #StringToPath() may not necessarily imply that the runtime has a component or other source of data that will be accessible through that semantic path. It only means that the path string supplied was well-formed and that the retrieved {@code XrPath} maps to the given path string within and during the lifetime of the {@code XrInstance} given.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code pathString} must be a null-terminated UTF-8 string
[kotlinc] - {@code path} must be a pointer to an {@code XrPath} value
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_PATH_COUNT_EXCEEDED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #PathToString()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "an instance previously created."),
[kotlinc] charUTF8.const.p("pathString", "the path name string to retrieve the associated {@code XrPath} for."),
[kotlinc] Check(1)..XrPath.p("path", "the output parameter, which must point to an {@code XrPath}. Given a well-formed path name string, this will be populated with an opaque value that is constant for that path string during the lifetime of that instance.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "PathToString",
[kotlinc] """
[kotlinc] Converts a semantic path to a string.
[kotlinc]
[kotlinc] C Specification
[kotlinc]
[kotlinc] ?XrResult xrPathToString(
[kotlinc] ? XrInstance instance,
[kotlinc] ? XrPath path,
[kotlinc] ? uint32_t bufferCapacityInput,
[kotlinc] ? uint32_t* bufferCountOutput,
[kotlinc] ? char* buffer);
[kotlinc]
[kotlinc] Description
[kotlinc] #PathToString() retrieves the path name string associated with an {@code XrPath}, in the context of a given {@code XrInstance}, in the form of a {@code NULL} terminated string placed into a caller-allocated buffer. Since the mapping between a well-formed path name string and an {@code XrPath} is bijective, there will always be exactly one string for each valid {@code XrPath} value. This can be useful if the calling application receives an {@code XrPath} value that they had not previously retrieved via #StringToPath(). During the lifetime of the given {@code XrInstance}, the path name string retrieved by this function for a given valid {@code XrPath} will not change. For invalid paths, including #NULL_PATH, #ERROR_PATH_INVALID must be returned.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code bufferCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code bufferCapacityInput} is not 0, {@code buffer} must be a pointer to an array of {@code bufferCapacityInput} char values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #StringToPath()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "an instance previously created."),
[kotlinc] XrPath("path", "the valid {@code XrPath} value to retrieve the path string for."),
[kotlinc] AutoSize("buffer")..uint32_t("bufferCapacityInput", "the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("bufferCountOutput", "a pointer to the count of characters written (including the terminating '\\0'), or a pointer to the required capacity in the case that {@code bufferCapacityInput} is 0."),
[kotlinc] nullable..char.p("buffer", "a pointer to an application-allocated buffer that will be filled with the semantic path string. It can be {@code NULL} if {@code bufferCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Input
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateActionSet",
[kotlinc] """
[kotlinc] Creates an XrActionSet.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateActionSet() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateActionSet(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrActionSetCreateInfo* createInfo,
[kotlinc] ? XrActionSet* actionSet);
[kotlinc]
[kotlinc] Description
[kotlinc] The #CreateActionSet() function creates an action set and returns a handle to the created action set.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionSetCreateInfo structure
[kotlinc] - {@code actionSet} must be a pointer to an {@code XrActionSet} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_NAME_DUPLICATED
[kotlinc] - #ERROR_LOCALIZED_NAME_INVALID
[kotlinc] - #ERROR_LOCALIZED_NAME_DUPLICATED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionSetCreateInfo, #DestroyActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "a handle to an {@code XrInstance}."),
[kotlinc] XrActionSetCreateInfo.const.p("createInfo", "a pointer to a valid ##XrActionSetCreateInfo structure that defines the action set being created."),
[kotlinc] Check(1)..XrActionSet.p("actionSet", "a pointer to an {@code XrActionSet} where the created action set is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyActionSet",
[kotlinc] """
[kotlinc] Destroys an XrActionSet.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyActionSet() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyActionSet(
[kotlinc] ? XrActionSet actionSet);
[kotlinc]
[kotlinc] Description
[kotlinc] Action set handles can be destroyed by calling #DestroyActionSet(). When an action set handle is destroyed, all handles of actions in that action set are also destroyed.
[kotlinc]
[kotlinc] The implementation must not free underlying resources for the action set while there are other valid handles that refer to those resources. The implementation may release resources for an action set when all of the action spaces for actions in that action set have been destroyed. See Action Spaces Lifetime for details.
[kotlinc]
[kotlinc] Resources for all action sets in an instance must be freed when the instance containing those actions sets is destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code actionSet} must be a valid {@code XrActionSet} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code actionSet}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateActionSet()
[kotlinc] """,
[kotlinc]
[kotlinc] XrActionSet("actionSet", "the action set to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "CreateAction",
[kotlinc] """
[kotlinc] Creates an XrAction.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #CreateAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrCreateAction(
[kotlinc] ? XrActionSet actionSet,
[kotlinc] ? const XrActionCreateInfo* createInfo,
[kotlinc] ? XrAction* action);
[kotlinc]
[kotlinc] Description
[kotlinc] #CreateAction() creates an action and returns its handle.
[kotlinc]
[kotlinc] If {@code actionSet} has been included in a call to #AttachSessionActionSets(), the implementation must return #ERROR_ACTIONSETS_ALREADY_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code actionSet} must be a valid {@code XrActionSet} handle
[kotlinc] - {@code createInfo} must be a pointer to a valid ##XrActionCreateInfo structure
[kotlinc] - {@code action} must be a pointer to an {@code XrAction} handle
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_OUT_OF_MEMORY
[kotlinc] - #ERROR_LIMIT_REACHED
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_PATH_FORMAT_INVALID
[kotlinc] - #ERROR_NAME_INVALID
[kotlinc] - #ERROR_NAME_DUPLICATED
[kotlinc] - #ERROR_LOCALIZED_NAME_INVALID
[kotlinc] - #ERROR_LOCALIZED_NAME_DUPLICATED
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionCreateInfo, #DestroyAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrActionSet("actionSet", "a handle to an {@code XrActionSet}."),
[kotlinc] XrActionCreateInfo.const.p("createInfo", "a pointer to a valid ##XrActionCreateInfo structure that defines the action being created."),
[kotlinc] Check(1)..XrAction.p("action", "a pointer to an {@code XrAction} where the created action is returned.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "DestroyAction",
[kotlinc] """
[kotlinc] Destroys an XrAction.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #DestroyAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrDestroyAction(
[kotlinc] ? XrAction action);
[kotlinc]
[kotlinc] Description
[kotlinc] Action handles can be destroyed by calling #DestroyAction(). Handles for actions that are part of an action set are automatically destroyed when the action set?s handle is destroyed.
[kotlinc]
[kotlinc] The implementation must not destroy the underlying resources for an action when #DestroyAction() is called. Those resources are still used to make action spaces locatable and when processing action priority in #SyncActions(). Destroying the action handle removes the application?s access to these resources, but has no other change on actions.
[kotlinc]
[kotlinc] Resources for all actions in an instance must be freed when the instance containing those actions sets is destroyed.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code action} must be a valid {@code XrAction} handle
[kotlinc]
[kotlinc]
[kotlinc] Thread Safety
[kotlinc]
[kotlinc] - Access to {@code action}, and any child handles, must be externally synchronized
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrAction("action", "the action to destroy.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "SuggestInteractionProfileBindings",
[kotlinc] """
[kotlinc] Sets the application-suggested bindings for the interaction profile.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #SuggestInteractionProfileBindings() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrSuggestInteractionProfileBindings(
[kotlinc] ? XrInstance instance,
[kotlinc] ? const XrInteractionProfileSuggestedBinding* suggestedBindings);
[kotlinc]
[kotlinc] Description
[kotlinc] #SuggestInteractionProfileBindings() sets an interaction profile for which the application can provide default bindings. The application can call #SuggestInteractionProfileBindings() once per interaction profile that it supports.
[kotlinc]
[kotlinc] The application can provide any number of bindings for each action.
[kotlinc]
[kotlinc] If the application successfully calls #SuggestInteractionProfileBindings() more than once for an interaction profile, the runtime must discard the previous suggested bindings and replace them with the new suggested bindings for that profile.
[kotlinc]
[kotlinc] If the interaction profile path does not follow the structure defined in Interaction Profiles or suggested bindings contain paths that do not follow the format defined in Device input subpaths, the runtime must return #ERROR_PATH_UNSUPPORTED. If the interaction profile or input source for any of the suggested bindings does not exist in the allowlist defined in Interaction Profile Paths, the runtime must return #ERROR_PATH_UNSUPPORTED. A runtime must accept every valid binding in the allowlist though it is free to ignore any of them.
[kotlinc]
[kotlinc] If the action set for any action referenced in the {@code suggestedBindings} parameter has been included in a call to #AttachSessionActionSets(), the implementation must return #ERROR_ACTIONSETS_ALREADY_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code instance} must be a valid {@code XrInstance} handle
[kotlinc] - {@code suggestedBindings} must be a pointer to a valid ##XrInteractionProfileSuggestedBinding structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInteractionProfileSuggestedBinding
[kotlinc] """,
[kotlinc]
[kotlinc] XrInstance("instance", "the {@code XrInstance} for which the application would like to set suggested bindings"),
[kotlinc] XrInteractionProfileSuggestedBinding.const.p("suggestedBindings", "the ##XrInteractionProfileSuggestedBinding that the application would like to set")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "AttachSessionActionSets",
[kotlinc] """
[kotlinc] Attaches action sets to a given session.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #AttachSessionActionSets() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrAttachSessionActionSets(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrSessionActionSetsAttachInfo* attachInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #AttachSessionActionSets() attaches the {@code XrActionSet} handles in {@code attachInfo.actionSets} to the {@code session}. Action sets must be attached in order to be synchronized with #SyncActions().
[kotlinc]
[kotlinc] When an action set is attached to a session, that action set becomes immutable. See #CreateAction() and #SuggestInteractionProfileBindings() for details.
[kotlinc]
[kotlinc] After action sets are attached to a session, if any unattached actions are passed to functions for the same session, then for those functions the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED.
[kotlinc]
[kotlinc] The runtime must return #ERROR_ACTIONSETS_ALREADY_ATTACHED if #AttachSessionActionSets() is called more than once for a given {@code session}.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code attachInfo} must be a pointer to a valid ##XrSessionActionSetsAttachInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_ACTIONSETS_ALREADY_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrSessionActionSetsAttachInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to attach the action sets to."),
[kotlinc] XrSessionActionSetsAttachInfo.const.p("attachInfo", "the ##XrSessionActionSetsAttachInfo to provide information to attach action sets to the session.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetCurrentInteractionProfile",
[kotlinc] """
[kotlinc] Gets the current interaction profile for a top level user paths.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetCurrentInteractionProfile() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetCurrentInteractionProfile(
[kotlinc] ? XrSession session,
[kotlinc] ? XrPath topLevelUserPath,
[kotlinc] ? XrInteractionProfileState* interactionProfile);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetCurrentInteractionProfile() asks the runtime for the active interaction profiles for a top level user path.
[kotlinc]
[kotlinc] The runtime must return only interaction profiles for which the application has provided bindings with #SuggestInteractionProfileBindings() or #NULL_PATH. The runtime may return interaction profiles that do not represent physically present hardware, for example if the runtime is using a known interaction profile to bind to hardware that the application is not aware of. The runtime may return the last-known interaction profile in the event that no controllers are active.
[kotlinc]
[kotlinc] If #AttachSessionActionSets() has not yet been called for the {@code session}, the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED. If {@code topLevelUserPath} is not one of the device input subpaths described in section /user paths, the runtime must return #ERROR_PATH_UNSUPPORTED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code interactionProfile} must be a pointer to an ##XrInteractionProfileState structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInteractionProfileState
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} for which the application would like to retrieve the current interaction profile."),
[kotlinc] XrPath("topLevelUserPath", "the top level user path the application would like to retrieve the interaction profile for."),
[kotlinc] XrInteractionProfileState.p("interactionProfile", "a pointer to an ##XrInteractionProfileState structure to receive the current interaction profile.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateBoolean",
[kotlinc] """
[kotlinc] Gets boolean action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateBoolean() retrieves the current state of a boolean action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateBoolean(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateBoolean* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateBoolean structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateBoolean, ##XrActionStateGetInfo, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateBoolean.p("state", "a pointer to a valid ##XrActionStateBoolean into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateFloat",
[kotlinc] """
[kotlinc] Gets a floating point action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateFloat() retrieves the current state of a floating-point action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateFloat(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateFloat* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateFloat structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateFloat, ##XrActionStateGetInfo, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateFloat.p("state", "a pointer to a valid ##XrActionStateFloat into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStateVector2f",
[kotlinc] """
[kotlinc] Gets 2D float vector action state.
[kotlinc]
[kotlinc] C Specification
[kotlinc] #GetActionStateVector2f() retrieves the current state of a two-dimensional vector action. It is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStateVector2f(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStateVector2f* state);
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStateVector2f structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateGetInfo, ##XrActionStateVector2f, #CreateAction()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStateVector2f.p("state", "a pointer to a valid ##XrActionStateVector2f into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetActionStatePose",
[kotlinc] """
[kotlinc] Gets metadata from a pose action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetActionStatePose() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetActionStatePose(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionStateGetInfo* getInfo,
[kotlinc] ? XrActionStatePose* state);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetActionStatePose() returns information about the binding and active state for the specified action. To determine the pose of this action at a historical or predicted time, the application can create an action space using #CreateActionSpace(). Then, after each sync, the application can locate the pose of this action space within a base space using #LocateSpace().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrActionStateGetInfo structure
[kotlinc] - {@code state} must be a pointer to an ##XrActionStatePose structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionStateGetInfo, ##XrActionStatePose, #CreateAction(), #CreateActionSpace()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to query."),
[kotlinc] XrActionStateGetInfo.const.p("getInfo", "a pointer to ##XrActionStateGetInfo to provide action and subaction paths information."),
[kotlinc] XrActionStatePose.p("state", "a pointer to a valid ##XrActionStatePose into which the state will be placed.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "SyncActions",
[kotlinc] """
[kotlinc] Updates the current state of input actions.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #SyncActions() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrSyncActions(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrActionsSyncInfo* syncInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] #SyncActions() updates the current state of input actions. Repeated input action state queries between subsequent synchronization calls must return the same values. The {@code XrActionSet} structures referenced in the {@code syncInfo.activeActionSets} must have been previously attached to the session via #AttachSessionActionSets(). If any action sets not attached to this session are passed to #SyncActions() it must return #ERROR_ACTIONSET_NOT_ATTACHED. Subsets of the bound action sets can be synchronized in order to control which actions are seen as active.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED, and all action states in the session must be inactive.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code syncInfo} must be a pointer to a valid ##XrActionsSyncInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrActionsSyncInfo, ##XrActiveActionSet
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the {@code XrSession} that all provided action set handles belong to."),
[kotlinc] XrActionsSyncInfo.const.p("syncInfo", "an ##XrActionsSyncInfo providing information to synchronize action states.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "EnumerateBoundSourcesForAction",
[kotlinc] """
[kotlinc] Queries the bound input sources for an action.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #EnumerateBoundSourcesForAction() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrEnumerateBoundSourcesForAction(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrBoundSourcesForActionEnumerateInfo* enumerateInfo,
[kotlinc] ? uint32_t sourceCapacityInput,
[kotlinc] ? uint32_t* sourceCountOutput,
[kotlinc] ? XrPath* sources);
[kotlinc]
[kotlinc] Description
[kotlinc] If an action is unbound, #EnumerateBoundSourcesForAction() must assign 0 to the value pointed-to by {@code sourceCountOutput} and not modify the array.
[kotlinc]
[kotlinc] #EnumerateBoundSourcesForAction() must return #ERROR_ACTIONSET_NOT_ATTACHED if passed an action in an action set never attached to the session with #AttachSessionActionSets().
[kotlinc]
[kotlinc] As bindings for actions do not change between calls to #SyncActions(), #EnumerateBoundSourcesForAction() must enumerate the same set of bound sources, or absence of bound sources, for a given query (defined by the {@code enumerateInfo} parameter) between any two calls to #SyncActions().
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code enumerateInfo} must be a pointer to a valid ##XrBoundSourcesForActionEnumerateInfo structure
[kotlinc] - {@code sourceCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code sourceCapacityInput} is not 0, {@code sources} must be a pointer to an array of {@code sourceCapacityInput} {@code XrPath} values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrBoundSourcesForActionEnumerateInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} being queried."),
[kotlinc] XrBoundSourcesForActionEnumerateInfo.const.p("enumerateInfo", "an ##XrBoundSourcesForActionEnumerateInfo providing the query information."),
[kotlinc] AutoSize("sources")..uint32_t("sourceCapacityInput", "the capacity of the array, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("sourceCountOutput", "a pointer to the count of sources, or a pointer to the required capacity in the case that {@code sourceCapacityInput} is 0."),
[kotlinc] nullable..XrPath.p("sources", "a pointer to an application-allocated array that will be filled with the {@code XrPath} values for all sources. It can be {@code NULL} if {@code sourceCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "GetInputSourceLocalizedName",
[kotlinc] """
[kotlinc] Gets a localized source name.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #GetInputSourceLocalizedName() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrGetInputSourceLocalizedName(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrInputSourceLocalizedNameGetInfo* getInfo,
[kotlinc] ? uint32_t bufferCapacityInput,
[kotlinc] ? uint32_t* bufferCountOutput,
[kotlinc] ? char* buffer);
[kotlinc]
[kotlinc] Description
[kotlinc] #GetInputSourceLocalizedName() returns a string for the input source in the current system locale.
[kotlinc]
[kotlinc] If #AttachSessionActionSets() has not yet been called for the session, the runtime must return #ERROR_ACTIONSET_NOT_ATTACHED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code getInfo} must be a pointer to a valid ##XrInputSourceLocalizedNameGetInfo structure
[kotlinc] - {@code bufferCountOutput} must be a pointer to a {@code uint32_t} value
[kotlinc] - If {@code bufferCapacityInput} is not 0, {@code buffer} must be a pointer to an array of {@code bufferCapacityInput} char values
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_SIZE_INSUFFICIENT
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrInputSourceLocalizedNameGetInfo
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "a handle to the {@code XrSession} associated with the action that reported this source."),
[kotlinc] XrInputSourceLocalizedNameGetInfo.const.p("getInfo", "an ##XrInputSourceLocalizedNameGetInfo providing the query information."),
[kotlinc] AutoSize("buffer")..uint32_t("bufferCapacityInput", "the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity."),
[kotlinc] Check(1)..uint32_t.p("bufferCountOutput", "a pointer to the count of name characters written (including the terminating {@code \\0}), or a pointer to the required capacity in the case that {@code bufferCapacityInput} is 0."),
[kotlinc] nullable..char.p("buffer", "a pointer to an application-allocated buffer that will be filled with the source name. It can be {@code NULL} if {@code bufferCapacityInput} is 0.")
[kotlinc] )
[kotlinc]
[kotlinc] // Haptics
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "ApplyHapticFeedback",
[kotlinc] """
[kotlinc] Apply haptic feedback.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #ApplyHapticFeedback() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrApplyHapticFeedback(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrHapticActionInfo* hapticActionInfo,
[kotlinc] ? const XrHapticBaseHeader* hapticFeedback);
[kotlinc]
[kotlinc] Description
[kotlinc] Triggers a haptic event through the specified action of type #TYPE_HAPTIC_VIBRATION. The runtime should deliver this request to the appropriate device, but exactly which device, if any, this event is sent to is up to the runtime to decide. If an appropriate device is unavailable the runtime may ignore this request for haptic feedback.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED, and not trigger a haptic event.
[kotlinc]
[kotlinc] If another haptic event from this session is currently happening on the device bound to this action, the runtime must interrupt that other event and replace it with the new one.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code hapticActionInfo} must be a pointer to a valid ##XrHapticActionInfo structure
[kotlinc] - {@code hapticFeedback} must be a pointer to a valid ##XrHapticBaseHeader-based structure. See also: ##XrHapticVibration
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrHapticActionInfo, ##XrHapticBaseHeader, ##XrHapticVibration, #StopHapticFeedback()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to start outputting to."),
[kotlinc] XrHapticActionInfo.const.p("hapticActionInfo", "a pointer to ##XrHapticActionInfo to provide action and subaction paths information."),
[kotlinc] XrHapticBaseHeader.const.p("hapticFeedback", "a pointer to a haptic event structure which starts with an ##XrHapticBaseHeader.")
[kotlinc] )
[kotlinc]
[kotlinc] XrResult(
[kotlinc] "StopHapticFeedback",
[kotlinc] """
[kotlinc] Stop haptic feedback.
[kotlinc]
[kotlinc] C Specification
[kotlinc] The #StopHapticFeedback() function is defined as:
[kotlinc]
[kotlinc]
[kotlinc] ?XrResult xrStopHapticFeedback(
[kotlinc] ? XrSession session,
[kotlinc] ? const XrHapticActionInfo* hapticActionInfo);
[kotlinc]
[kotlinc] Description
[kotlinc] If a haptic event from this {@code XrAction} is in progress, when this function is called the runtime must stop that event.
[kotlinc]
[kotlinc] If {@code session} is not focused, the runtime must return #SESSION_NOT_FOCUSED.
[kotlinc]
[kotlinc] Valid Usage (Implicit)
[kotlinc]
[kotlinc] - {@code session} must be a valid {@code XrSession} handle
[kotlinc] - {@code hapticActionInfo} must be a pointer to a valid ##XrHapticActionInfo structure
[kotlinc]
[kotlinc]
[kotlinc] Return Codes
[kotlinc]
[kotlinc] - On success, this command returns
[kotlinc]
[kotlinc] - #SUCCESS
[kotlinc] - #SESSION_LOSS_PENDING
[kotlinc] - #SESSION_NOT_FOCUSED
[kotlinc]
[kotlinc]
[kotlinc] - On failure, this command returns
[kotlinc]
[kotlinc] - #ERROR_VALIDATION_FAILURE
[kotlinc] - #ERROR_RUNTIME_FAILURE
[kotlinc] - #ERROR_HANDLE_INVALID
[kotlinc] - #ERROR_INSTANCE_LOST
[kotlinc] - #ERROR_SESSION_LOST
[kotlinc] - #ERROR_PATH_UNSUPPORTED
[kotlinc] - #ERROR_PATH_INVALID
[kotlinc] - #ERROR_ACTION_TYPE_MISMATCH
[kotlinc] - #ERROR_ACTIONSET_NOT_ATTACHED
[kotlinc]
[kotlinc]
[kotlinc]
[kotlinc] See Also
[kotlinc] ##XrHapticActionInfo, #ApplyHapticFeedback()
[kotlinc] """,
[kotlinc]
[kotlinc] XrSession("session", "the {@code XrSession} to stop outputting to."),
[kotlinc] XrHapticActionInfo.const.p("hapticActionInfo", "a pointer to an ##XrHapticActionInfo to provide action and subaction path information.")
[kotlinc] )
[kotlinc]
[kotlinc] }
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.logOrThrowException(ExpressionTypingVisitorDispatcher.java:253)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:224)
[kotlinc] at org.jetbrains.kotlin.util.ReenterableCounter.countTime(PerformanceCounter.kt:161)
[kotlinc] at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:105)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:164)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:134)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:146)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getTypeInfo(ExpressionTypingServices.java:120)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getTypeInfo(ExpressionTypingServices.java:95)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.getType(ExpressionTypingServices.java:137)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.safeGetType(ExpressionTypingServices.java:80)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver.resolveInitializerType(VariableTypeAndInitializerResolver.kt:183)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver.access$resolveInitializerType(VariableTypeAndInitializerResolver.kt:27)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver$resolveTypeNullable$1.invoke(VariableTypeAndInitializerResolver.kt:92)
[kotlinc] at org.jetbrains.kotlin.resolve.VariableTypeAndInitializerResolver$resolveTypeNullable$1.invoke(VariableTypeAndInitializerResolver.kt:85)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
[kotlinc] at org.jetbrains.kotlin.types.DeferredType.getDelegate(DeferredType.java:106)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.computeDeferredType(BodyResolver.java:1080)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveProperty(BodyResolver.java:798)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolvePropertyDeclarationBodies(BodyResolver.java:856)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveBehaviorDeclarationBodies(BodyResolver.java:122)
[kotlinc] at org.jetbrains.kotlin.resolve.BodyResolver.resolveBodies(BodyResolver.java:255)
[kotlinc] at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:227)
[kotlinc] at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:58)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:130)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:99)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:301)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:55)
[kotlinc] at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:113)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:292)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:102)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:60)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:172)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:54)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:93)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:71)
[kotlinc] at org.jetbrains.kotlin.cli.common.CLICompiler.execFullPathsInMessages(CLICompiler.kt:57)
[kotlinc] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[kotlinc] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[kotlinc] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[kotlinc] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[kotlinc] at org.jetbrains.kotlin.ant.KotlinCompilerBaseTask.execute(KotlinCompilerBaseTask.kt:92)
[kotlinc] at org.jetbrains.kotlin.ant.Kotlin2JvmTask.execute(Kotlin2JvmTask.kt:85)
[kotlinc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
[kotlinc] at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[kotlinc] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[kotlinc] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[kotlinc] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
[kotlinc] at org.apache.tools.ant.Task.perform(Task.java:350)
[kotlinc] at org.apache.tools.ant.Target.execute(Target.java:449)
[kotlinc] at org.apache.tools.ant.Target.performTasks(Target.java:470)
[kotlinc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
[kotlinc] at org.apache.tools.ant.Project.executeTarget(Project.java:1374)
[kotlinc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[kotlinc] at org.apache.tools.ant.Project.executeTargets(Project.java:1264)
[kotlinc] at org.apache.tools.ant.Main.runBuild(Main.java:818)
[kotlinc] at org.apache.tools.ant.Main.startAnt(Main.java:223)
[kotlinc] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
[kotlinc] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
[kotlinc] Caused by: java.lang.OutOfMemoryError: Java heap space
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.rehash(OpenAddressLinearProbingHashTable.kt:93)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.put(OpenAddressLinearProbingHashTable.kt:83)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.put(SlicedMapImpl.java:79)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingTraceContext.record(BindingTraceContext.java:137)
[kotlinc] at org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace.record(CliTrace.kt:64)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
[kotlinc] at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace.record(LockBasedLazyResolveStorageManager.kt:70)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils.lambda$addOwnDataTo$0(BindingContextUtils.java:215)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils$$Lambda$503/0x00000008007f5c40.invoke(Unknown Source)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.lambda$forEach$0(SlicedMapImpl.java:116)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl$$Lambda$504/0x00000008007f5040.accept(Unknown Source)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.OpenAddressLinearProbingHashTable.forEach(OpenAddressLinearProbingHashTable.kt:123)
[kotlinc] at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.forEach(SlicedMapImpl.java:110)
[kotlinc] at org.jetbrains.kotlin.resolve.BindingContextUtils.addOwnDataTo(BindingContextUtils.java:213)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo(DelegatingBindingTrace.kt:145)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo$default(DelegatingBindingTrace.kt:144)
[kotlinc] at org.jetbrains.kotlin.resolve.DelegatingBindingTrace.addOwnDataTo(DelegatingBindingTrace.kt)
[kotlinc] at org.jetbrains.kotlin.resolve.TemporaryBindingTrace.commit(TemporaryBindingTrace.java:47)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.context.TemporaryTraceAndCache.commit(TemporaryTraceAndCache.java:36)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getCallExpressionTypeInfoWithoutFinalTypeCheck(CallExpressionResolver.kt:218)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getUnsafeSelectorTypeInfo(CallExpressionResolver.kt:334)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getSafeOrUnsafeSelectorTypeInfo(CallExpressionResolver.kt:384)
[kotlinc] at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getQualifiedExpressionTypeInfo(CallExpressionResolver.kt:481)
[kotlinc] at org.jetbrains.kotlin.types.expressions.BasicExpressionTypingVisitor.visitQualifiedExpression(BasicExpressionTypingVisitor.java:712)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.visitQualifiedExpression(ExpressionTypingVisitorDispatcher.java:383)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher$ForDeclarations.visitQualifiedExpression(ExpressionTypingVisitorDispatcher.java:46)
[kotlinc] at org.jetbrains.kotlin.psi.KtVisitor.visitDotQualifiedExpression(KtVisitor.java:306)
[kotlinc] at org.jetbrains.kotlin.psi.KtDotQualifiedExpression.accept(KtDotQualifiedExpression.kt:32)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:175)
[kotlinc] at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher$$Lambda$495/0x00000008007f0440.invoke(Unknown Source)
[kotlinc]
BUILD FAILED
/usr/obj/ports/lwjgl3-3.3.1.1/lwjgl3-3.3.1.1/build.xml:212: Compile failed; see the compiler error output for details.
Total time: 30 minutes 59 seconds
*** Error 1 in games/lwjgl3 (Makefile:91 'do-build')
*** Error 2 in games/lwjgl3 (/usr/ports/infrastructure/mk/bsd.port.mk:3063 '/usr/obj/ports/lwjgl3-3.3.1.1/.build_done': @cd /usr/ports/games...)
*** Error 2 in games/lwjgl3 (/usr/ports/infrastructure/mk/bsd.port.mk:2710 'build': @lock=lwjgl3-3.3.1.1; export _LOCKS_HELD=" lwjgl3-3.3.1...)
===> Exiting games/lwjgl3 with an error
*** Error 1 in /usr/ports (infrastructure/mk/bsd.port.subdir.mk:144 'build': @: ${echo_msg:=echo}; : ${target:=build}; for i in ; do eval...)
>>> Ended at 1729375893.36
max_stuck=1330.44/depends=82.74/show-prepare-results=16.27/patch=18.32/configure=1.63/build=1883.50
Error: job failed with 512 on sparc64-0c at 1729375893