>>> 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] [kotlinc]
Success Codes
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EnumDescription
#SUCCESSFunction successfully completed.
#TIMEOUT_EXPIREDThe specified timeout time occurred before the operation could complete.
#SESSION_LOSS_PENDINGThe session will be lost soon.
#EVENT_UNAVAILABLENo event was available.
#SPACE_BOUNDS_UNAVAILABLEThe space?s bounds are not known at the moment.
#SESSION_NOT_FOCUSEDThe session is not in the focused state.
#FRAME_DISCARDEDA frame has been discarded from composition.
#RENDER_MODEL_UNAVAILABLE_FBThe model is unavailable. (Added by the {@link FBRenderModel XR_FB_render_model} extension)
[kotlinc] [kotlinc]
Error Codes
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EnumDescription
#ERROR_VALIDATION_FAILUREThe function usage was invalid in some way.
#ERROR_RUNTIME_FAILUREThe runtime failed to handle the function in an unexpected way that is not covered by another error result.
#ERROR_OUT_OF_MEMORYA memory allocation has failed.
#ERROR_API_VERSION_UNSUPPORTEDThe runtime does not support the requested API version.
#ERROR_INITIALIZATION_FAILEDInitialization of object could not be completed.
#ERROR_FUNCTION_UNSUPPORTEDThe requested function was not found or is otherwise unsupported.
#ERROR_FEATURE_UNSUPPORTEDThe requested feature is not supported.
#ERROR_EXTENSION_NOT_PRESENTA requested extension is not supported.
#ERROR_LIMIT_REACHEDThe runtime supports no more of the requested resource.
#ERROR_SIZE_INSUFFICIENTThe supplied size was smaller than required.
#ERROR_HANDLE_INVALIDA supplied object handle was invalid.
#ERROR_INSTANCE_LOSTThe {@code XrInstance} was lost or could not be found. It will need to be destroyed and optionally recreated.
#ERROR_SESSION_RUNNINGThe session is already running.
#ERROR_SESSION_NOT_RUNNINGThe session is not yet running.
#ERROR_SESSION_LOSTThe {@code XrSession} was lost. It will need to be destroyed and optionally recreated.
#ERROR_SYSTEM_INVALIDThe provided {@code XrSystemId} was invalid.
#ERROR_PATH_INVALIDThe provided {@code XrPath} was not valid.
#ERROR_PATH_COUNT_EXCEEDEDThe maximum number of supported semantic paths has been reached.
#ERROR_PATH_FORMAT_INVALIDThe semantic path character format is invalid.
#ERROR_PATH_UNSUPPORTEDThe semantic path is unsupported.
#ERROR_LAYER_INVALIDThe layer was NULL or otherwise invalid.
#ERROR_LAYER_LIMIT_EXCEEDEDThe number of specified layers is greater than the supported number.
#ERROR_SWAPCHAIN_RECT_INVALIDThe image rect was negatively sized or otherwise invalid.
#ERROR_SWAPCHAIN_FORMAT_UNSUPPORTEDThe image format is not supported by the runtime or platform.
#ERROR_ACTION_TYPE_MISMATCHThe API used to retrieve an action?s state does not match the action?s type.
#ERROR_SESSION_NOT_READYThe session is not in the ready state.
#ERROR_SESSION_NOT_STOPPINGThe session is not in the stopping state.
#ERROR_TIME_INVALIDThe provided {@code XrTime} was zero, negative, or out of range.
#ERROR_REFERENCE_SPACE_UNSUPPORTEDThe specified reference space is not supported by the runtime or system.
#ERROR_FILE_ACCESS_ERRORThe file could not be accessed.
#ERROR_FILE_CONTENTS_INVALIDThe file?s contents were invalid.
#ERROR_FORM_FACTOR_UNSUPPORTEDThe specified form factor is not supported by the current runtime or platform.
#ERROR_FORM_FACTOR_UNAVAILABLEThe specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off.
#ERROR_API_LAYER_NOT_PRESENTA requested API layer is not present or could not be loaded.
#ERROR_CALL_ORDER_INVALIDThe call was made without having made a previously required call.
#ERROR_GRAPHICS_DEVICE_INVALIDThe given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements.
#ERROR_POSE_INVALIDThe supplied pose was invalid with respect to the requirements.
#ERROR_INDEX_OUT_OF_RANGEThe supplied index was outside the range of valid indices.
#ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTEDThe specified view configuration type is not supported by the runtime or platform.
#ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTEDThe specified environment blend mode is not supported by the runtime or platform.
#ERROR_NAME_DUPLICATEDThe name provided was a duplicate of an already-existing resource.
#ERROR_NAME_INVALIDThe name provided was invalid.
#ERROR_ACTIONSET_NOT_ATTACHEDA referenced action set is not attached to the session.
#ERROR_ACTIONSETS_ALREADY_ATTACHEDThe session already has attached action sets.
#ERROR_LOCALIZED_NAME_DUPLICATEDThe localized name provided was a duplicate of an already-existing resource.
#ERROR_LOCALIZED_NAME_INVALIDThe localized name provided was invalid.
#ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSINGThe {@code xrGetGraphicsRequirements}* call was not made before calling {@code xrCreateSession}.
#ERROR_RUNTIME_UNAVAILABLEThe loader was unable to find or load a runtime.
#ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFTSpatial anchor could not be created at that location. (Added by the {@link MSFTSpatialAnchor XR_MSFT_spatial_anchor} extension)
#ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFTThe secondary view configuration was not enabled when creating the session. (Added by the {@link MSFTSecondaryViewConfiguration XR_MSFT_secondary_view_configuration} extension)
#ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFTThe controller model key is invalid. (Added by the {@link MSFTControllerModel XR_MSFT_controller_model} extension)
#ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFTThe reprojection mode is not supported. (Added by the {@link MSFTCompositionLayerReprojection XR_MSFT_composition_layer_reprojection} extension)
#ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFTCompute new scene not completed. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPONENT_ID_INVALID_MSFTScene component id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFTScene component type mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFTScene mesh buffer id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFTScene compute feature incompatible. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFTScene compute consistency mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FBThe display refresh rate is not supported by the platform. (Added by the {@link FBDisplayRefreshRate XR_FB_display_refresh_rate} extension)
#ERROR_COLOR_SPACE_UNSUPPORTED_FBThe color space is not supported by the runtime. (Added by the {@link FBColorSpace XR_FB_color_space} extension)
#ERROR_UNEXPECTED_STATE_PASSTHROUGH_FBThe object state is unexpected for the issued command. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FBTrying 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)
#ERROR_FEATURE_REQUIRED_PASSTHROUGH_FBRequested functionality requires a feature to be created first. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_NOT_PERMITTED_PASSTHROUGH_FBRequested functionality is not permitted - application is not allowed to perform the requested operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FBThere weren?t sufficient resources available to perform an operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_UNKNOWN_PASSTHROUGH_FBUnknown Passthrough error (no further details provided). (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_RENDER_MODEL_KEY_INVALID_FBThe model key is invalid. (Added by the {@link FBRenderModel XR_FB_render_model} extension)
#ERROR_MARKER_NOT_TRACKED_VARJOMarker tracking is disabled or the specified marker is not currently tracked. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension)
#ERROR_MARKER_ID_INVALID_VARJOThe specified marker ID is not valid. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension)
#ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFTA spatial anchor was not found associated with the spatial anchor name provided (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension)
#ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFTThe spatial anchor name provided was not valid (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension)
[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] [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] [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] [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]
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] [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] [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] [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] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
{@code XrObjectType}OpenXR Handle Type
#OBJECT_TYPE_UNKNOWNUnknown/Undefined Handle
#OBJECT_TYPE_INSTANCE{@code XrInstance}
#OBJECT_TYPE_SESSION{@code XrSession}
#OBJECT_TYPE_SWAPCHAIN{@code XrSwapchain}
#OBJECT_TYPE_SPACE{@code XrSpace}
#OBJECT_TYPE_ACTION_SET{@code XrActionSet}
#OBJECT_TYPE_ACTION{@code XrAction}
[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] [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] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
{@code instance} parameter{@code name} parameterreturn value
*{@code NULL}undefined
invalid instance*undefined
{@code NULL}#EnumerateInstanceExtensionProperties()fp
{@code NULL}#EnumerateApiLayerProperties()fp
{@code NULL}#CreateInstance()fp
{@code NULL}* (any {@code name} not covered above){@code NULL}
instancecore OpenXR functionfp1
instanceenabled extension function for {@code instance}fp1
instance* (any {@code name} not covered above){@code NULL}
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[kotlinc]
[kotlinc]
[kotlinc] [kotlinc] The runtime must discard queued events which contain destroyed or otherwise invalid handles. [kotlinc] [kotlinc]
Event Descriptions
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EventDescription
##XrEventDataEventsLostevent queue has overflowed and some events were lost
##XrEventDataInstanceLossPendingapplication is about to lose the instance
##XrEventDataInteractionProfileChangedactive input form factor for one or more top level user paths has changed
##XrEventDataReferenceSpaceChangePendingruntime will begin operating with updated space bounds
##XrEventDataSessionStateChangedapplication has changed lifecycle state
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Success Codes
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EnumDescription
#SUCCESSFunction successfully completed.
#TIMEOUT_EXPIREDThe specified timeout time occurred before the operation could complete.
#SESSION_LOSS_PENDINGThe session will be lost soon.
#EVENT_UNAVAILABLENo event was available.
#SPACE_BOUNDS_UNAVAILABLEThe space?s bounds are not known at the moment.
#SESSION_NOT_FOCUSEDThe session is not in the focused state.
#FRAME_DISCARDEDA frame has been discarded from composition.
#RENDER_MODEL_UNAVAILABLE_FBThe model is unavailable. (Added by the {@link FBRenderModel XR_FB_render_model} extension)
[kotlinc] [kotlinc]
Error Codes
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EnumDescription
#ERROR_VALIDATION_FAILUREThe function usage was invalid in some way.
#ERROR_RUNTIME_FAILUREThe runtime failed to handle the function in an unexpected way that is not covered by another error result.
#ERROR_OUT_OF_MEMORYA memory allocation has failed.
#ERROR_API_VERSION_UNSUPPORTEDThe runtime does not support the requested API version.
#ERROR_INITIALIZATION_FAILEDInitialization of object could not be completed.
#ERROR_FUNCTION_UNSUPPORTEDThe requested function was not found or is otherwise unsupported.
#ERROR_FEATURE_UNSUPPORTEDThe requested feature is not supported.
#ERROR_EXTENSION_NOT_PRESENTA requested extension is not supported.
#ERROR_LIMIT_REACHEDThe runtime supports no more of the requested resource.
#ERROR_SIZE_INSUFFICIENTThe supplied size was smaller than required.
#ERROR_HANDLE_INVALIDA supplied object handle was invalid.
#ERROR_INSTANCE_LOSTThe {@code XrInstance} was lost or could not be found. It will need to be destroyed and optionally recreated.
#ERROR_SESSION_RUNNINGThe session is already running.
#ERROR_SESSION_NOT_RUNNINGThe session is not yet running.
#ERROR_SESSION_LOSTThe {@code XrSession} was lost. It will need to be destroyed and optionally recreated.
#ERROR_SYSTEM_INVALIDThe provided {@code XrSystemId} was invalid.
#ERROR_PATH_INVALIDThe provided {@code XrPath} was not valid.
#ERROR_PATH_COUNT_EXCEEDEDThe maximum number of supported semantic paths has been reached.
#ERROR_PATH_FORMAT_INVALIDThe semantic path character format is invalid.
#ERROR_PATH_UNSUPPORTEDThe semantic path is unsupported.
#ERROR_LAYER_INVALIDThe layer was NULL or otherwise invalid.
#ERROR_LAYER_LIMIT_EXCEEDEDThe number of specified layers is greater than the supported number.
#ERROR_SWAPCHAIN_RECT_INVALIDThe image rect was negatively sized or otherwise invalid.
#ERROR_SWAPCHAIN_FORMAT_UNSUPPORTEDThe image format is not supported by the runtime or platform.
#ERROR_ACTION_TYPE_MISMATCHThe API used to retrieve an action?s state does not match the action?s type.
#ERROR_SESSION_NOT_READYThe session is not in the ready state.
#ERROR_SESSION_NOT_STOPPINGThe session is not in the stopping state.
#ERROR_TIME_INVALIDThe provided {@code XrTime} was zero, negative, or out of range.
#ERROR_REFERENCE_SPACE_UNSUPPORTEDThe specified reference space is not supported by the runtime or system.
#ERROR_FILE_ACCESS_ERRORThe file could not be accessed.
#ERROR_FILE_CONTENTS_INVALIDThe file?s contents were invalid.
#ERROR_FORM_FACTOR_UNSUPPORTEDThe specified form factor is not supported by the current runtime or platform.
#ERROR_FORM_FACTOR_UNAVAILABLEThe specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off.
#ERROR_API_LAYER_NOT_PRESENTA requested API layer is not present or could not be loaded.
#ERROR_CALL_ORDER_INVALIDThe call was made without having made a previously required call.
#ERROR_GRAPHICS_DEVICE_INVALIDThe given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements.
#ERROR_POSE_INVALIDThe supplied pose was invalid with respect to the requirements.
#ERROR_INDEX_OUT_OF_RANGEThe supplied index was outside the range of valid indices.
#ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTEDThe specified view configuration type is not supported by the runtime or platform.
#ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTEDThe specified environment blend mode is not supported by the runtime or platform.
#ERROR_NAME_DUPLICATEDThe name provided was a duplicate of an already-existing resource.
#ERROR_NAME_INVALIDThe name provided was invalid.
#ERROR_ACTIONSET_NOT_ATTACHEDA referenced action set is not attached to the session.
#ERROR_ACTIONSETS_ALREADY_ATTACHEDThe session already has attached action sets.
#ERROR_LOCALIZED_NAME_DUPLICATEDThe localized name provided was a duplicate of an already-existing resource.
#ERROR_LOCALIZED_NAME_INVALIDThe localized name provided was invalid.
#ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSINGThe {@code xrGetGraphicsRequirements}* call was not made before calling {@code xrCreateSession}.
#ERROR_RUNTIME_UNAVAILABLEThe loader was unable to find or load a runtime.
#ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFTSpatial anchor could not be created at that location. (Added by the {@link MSFTSpatialAnchor XR_MSFT_spatial_anchor} extension)
#ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFTThe secondary view configuration was not enabled when creating the session. (Added by the {@link MSFTSecondaryViewConfiguration XR_MSFT_secondary_view_configuration} extension)
#ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFTThe controller model key is invalid. (Added by the {@link MSFTControllerModel XR_MSFT_controller_model} extension)
#ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFTThe reprojection mode is not supported. (Added by the {@link MSFTCompositionLayerReprojection XR_MSFT_composition_layer_reprojection} extension)
#ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFTCompute new scene not completed. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPONENT_ID_INVALID_MSFTScene component id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFTScene component type mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFTScene mesh buffer id invalid. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFTScene compute feature incompatible. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFTScene compute consistency mismatch. (Added by the {@link MSFTSceneUnderstanding XR_MSFT_scene_understanding} extension)
#ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FBThe display refresh rate is not supported by the platform. (Added by the {@link FBDisplayRefreshRate XR_FB_display_refresh_rate} extension)
#ERROR_COLOR_SPACE_UNSUPPORTED_FBThe color space is not supported by the runtime. (Added by the {@link FBColorSpace XR_FB_color_space} extension)
#ERROR_UNEXPECTED_STATE_PASSTHROUGH_FBThe object state is unexpected for the issued command. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FBTrying 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)
#ERROR_FEATURE_REQUIRED_PASSTHROUGH_FBRequested functionality requires a feature to be created first. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_NOT_PERMITTED_PASSTHROUGH_FBRequested functionality is not permitted - application is not allowed to perform the requested operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FBThere weren?t sufficient resources available to perform an operation. (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_UNKNOWN_PASSTHROUGH_FBUnknown Passthrough error (no further details provided). (Added by the {@link FBPassthrough XR_FB_passthrough} extension)
#ERROR_RENDER_MODEL_KEY_INVALID_FBThe model key is invalid. (Added by the {@link FBRenderModel XR_FB_render_model} extension)
#ERROR_MARKER_NOT_TRACKED_VARJOMarker tracking is disabled or the specified marker is not currently tracked. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension)
#ERROR_MARKER_ID_INVALID_VARJOThe specified marker ID is not valid. (Added by the {@link VARJOMarkerTracking XR_VARJO_marker_tracking} extension)
#ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFTA spatial anchor was not found associated with the spatial anchor name provided (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension)
#ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFTThe spatial anchor name provided was not valid (Added by the {@link MSFTSpatialAnchorPersistence XR_MSFT_spatial_anchor_persistence} extension)
[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] [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] [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] [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]
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] [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] [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] [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] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
{@code XrObjectType}OpenXR Handle Type
#OBJECT_TYPE_UNKNOWNUnknown/Undefined Handle
#OBJECT_TYPE_INSTANCE{@code XrInstance}
#OBJECT_TYPE_SESSION{@code XrSession}
#OBJECT_TYPE_SWAPCHAIN{@code XrSwapchain}
#OBJECT_TYPE_SPACE{@code XrSpace}
#OBJECT_TYPE_ACTION_SET{@code XrActionSet}
#OBJECT_TYPE_ACTION{@code XrAction}
[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] [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] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
{@code instance} parameter{@code name} parameterreturn value
*{@code NULL}undefined
invalid instance*undefined
{@code NULL}#EnumerateInstanceExtensionProperties()fp
{@code NULL}#EnumerateApiLayerProperties()fp
{@code NULL}#CreateInstance()fp
{@code NULL}* (any {@code name} not covered above){@code NULL}
instancecore OpenXR functionfp1
instanceenabled extension function for {@code instance}fp1
instance* (any {@code name} not covered above){@code NULL}
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[kotlinc]
[kotlinc]
[kotlinc] [kotlinc] The runtime must discard queued events which contain destroyed or otherwise invalid handles. [kotlinc] [kotlinc]
Event Descriptions
[kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc] [kotlinc]
EventDescription
##XrEventDataEventsLostevent queue has overflowed and some events were lost
##XrEventDataInstanceLossPendingapplication is about to lose the instance
##XrEventDataInteractionProfileChangedactive input form factor for one or more top level user paths has changed
##XrEventDataReferenceSpaceChangePendingruntime will begin operating with updated space bounds
##XrEventDataSessionStateChangedapplication has changed lifecycle state
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Valid Usage (Implicit)
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Thread Safety
[kotlinc] [kotlinc] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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] [kotlinc]
Return Codes
[kotlinc]
[kotlinc]
On success, this command returns
[kotlinc]
[kotlinc] [kotlinc]
On failure, this command returns
[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