Skip to content

Commit

Permalink
feat(OpenXR) update to 1.1.42
Browse files Browse the repository at this point in the history
  • Loading branch information
Spasi committed Nov 18, 2024
1 parent 901d8a2 commit 0800caf
Show file tree
Hide file tree
Showing 8 changed files with 114 additions and 25 deletions.
2 changes: 1 addition & 1 deletion doc/notes/3.3.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ This build includes the following changes:
* Added `AL_EXT_debug` extension.
* Added `AL_EXT_direct_context` extension.
* macOS: 10.15+ is now required (up from 10.11).
- OpenXR: Updated to 1.1.41 (up from 1.1.38)
- OpenXR: Updated to 1.1.42 (up from 1.1.38)
- Shaderc: Updated to 2024.3 (up from 2024.2)
- SPIRV-Cross: Updated to 0.64.0 (up from 0.61.0)
- stb
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
public class HTCFacialTracking {

/** The extension specification version. */
public static final int XR_HTC_facial_tracking_SPEC_VERSION = 2;
public static final int XR_HTC_facial_tracking_SPEC_VERSION = 3;

/** The extension name. */
public static final String XR_HTC_FACIAL_TRACKING_EXTENSION_NAME = "XR_HTC_facial_tracking";
Expand All @@ -45,6 +45,24 @@ public class HTCFacialTracking {
XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC = 1000104001,
XR_TYPE_FACIAL_EXPRESSIONS_HTC = 1000104002;

/**
* Extends {@code XrLipExpressionHTC}.
*
* <h5>Enum values:</h5>
*
* <ul>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC}</li>
* </ul>
*/
public static final int
XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = 12,
XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = 13,
XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = 14,
XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = 15;

/**
* XrEyeExpressionHTC - The blend shapes of eye expression
*
Expand Down Expand Up @@ -101,10 +119,10 @@ public class HTCFacialTracking {
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_POUT_HTC LIP_EXPRESSION_MOUTH_POUT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC}</li>
* <li>{@link #XR_LIP_EXPRESSION_CHEEK_SUCK_HTC LIP_EXPRESSION_CHEEK_SUCK_HTC}</li>
Expand Down Expand Up @@ -141,10 +159,10 @@ public class HTCFacialTracking {
XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC = 9,
XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC = 10,
XR_LIP_EXPRESSION_MOUTH_POUT_HTC = 11,
XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = 12,
XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = 13,
XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = 14,
XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = 15,
XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC = 12,
XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC = 13,
XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC = 14,
XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC = 15,
XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC = 16,
XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC = 17,
XR_LIP_EXPRESSION_CHEEK_SUCK_HTC = 18,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
* <li>pathname:/interaction_profiles/varjo/xr-4_controller</li>
* </ul>
*
* <h5>Note</h5>
*
* <p>The interaction profile path pathname:{legacy-path} defined here does not follow current rules for interaction profile names. If this extension were introduced today, it would be called pathname:{properly-suffixed-path}, to allow for modifications when promoted to a KHR extension or the core specification.</p>
*
* <p>Valid for the user paths:</p>
*
* <ul>
Expand Down Expand Up @@ -54,11 +58,38 @@
* <li>subpathname:/input/aim/pose</li>
* <li>subpathname:/output/haptic</li>
* </ul>
*
* <div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
*
* <p>When the runtime supports {@link XR11 XR_VERSION_1_1} and use of OpenXR 1.1 is requested by the application, this interaction profile <b>must</b> also support</p>
*
* <ul>
* <li>subpathname:/input/grip_surface/pose</li>
* </ul>
* </div>
*
* <div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
*
* <p>When the {@link KHRMaintenance1 XR_KHR_maintenance1} extension is available and enabled, this interaction profile <b>must</b> also support</p>
*
* <ul>
* <li>subpathname:/input/grip_surface/pose</li>
* </ul>
* </div>
*
* <div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
*
* <p>When the {@link EXTPalmPose XR_EXT_palm_pose} extension is available and enabled, this interaction profile <b>must</b> also support</p>
*
* <ul>
* <li>subpathname:/input/palm_ext/pose</li>
* </ul>
* </div>
*/
public final class VARJOXr4ControllerInteraction {

/** The extension specification version. */
public static final int XR_VARJO_xr4_controller_interaction_SPEC_VERSION = 1;
public static final int XR_VARJO_xr4_controller_interaction_SPEC_VERSION = 2;

/** The extension name. */
public static final String XR_VARJO_XR4_CONTROLLER_INTERACTION_EXTENSION_NAME = "XR_VARJO_xr4_controller_interaction";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,8 @@ public class XR10 {
* <tr><td>{@link MLSystemNotifications#XR_ERROR_SYSTEM_NOTIFICATION_INCOMPATIBLE_SKU_ML ERROR_SYSTEM_NOTIFICATION_INCOMPATIBLE_SKU_ML}</td><td>Incompatible SKU detected. (Added by the {@link MLSystemNotifications XR_ML_system_notifications} extension)</td></tr>
* <tr><td>{@link MLWorldMeshDetection#XR_ERROR_WORLD_MESH_DETECTOR_PERMISSION_DENIED_ML ERROR_WORLD_MESH_DETECTOR_PERMISSION_DENIED_ML}</td><td>The world mesh detector permission was not granted. (Added by the {@link MLWorldMeshDetection XR_ML_world_mesh_detection} extension)</td></tr>
* <tr><td>{@link MLWorldMeshDetection#XR_ERROR_WORLD_MESH_DETECTOR_SPACE_NOT_LOCATABLE_ML ERROR_WORLD_MESH_DETECTOR_SPACE_NOT_LOCATABLE_ML}</td><td>At the time of the call the runtime was unable to locate the space and cannot fulfill your request. (Added by the {@link MLWorldMeshDetection XR_ML_world_mesh_detection} extension)</td></tr>
* <tr><td>{@link KHRMaintenance1#XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR}</td><td>Alias for {@link XR11#XR_ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED} (Added by the {@link KHRMaintenance1 XR_KHR_maintenance1} extension)</td></tr>
* <tr><td>{@link KHRMaintenance1#XR_ERROR_PERMISSION_INSUFFICIENT_KHR ERROR_PERMISSION_INSUFFICIENT_KHR}</td><td>Alias for {@link XR11#XR_ERROR_PERMISSION_INSUFFICIENT ERROR_PERMISSION_INSUFFICIENT} (Added by the {@link KHRMaintenance1 XR_KHR_maintenance1} extension)</td></tr>
* </tbody>
* </table>
*
Expand Down Expand Up @@ -772,7 +774,7 @@ public class XR10 {
XR_OBJECT_TYPE_ACTION = 6;

/** OpenXR current version number. */
public static final long XR_CURRENT_API_VERSION = XR_MAKE_VERSION(1, 1, 41);
public static final long XR_CURRENT_API_VERSION = XR_MAKE_VERSION(1, 1, 42);

/**
* The version of the OpenXR 1.0 API.
Expand Down Expand Up @@ -856,7 +858,7 @@ public static int nxrGetInstanceProcAddr(long instance, long name, long function
*
* <p>{@link #xrGetInstanceProcAddr 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 <b>can</b> link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs. Loaders <b>must</b> export function symbols for all core OpenXR functions. Because of this, applications that use only the core OpenXR functions have no need to use {@link #xrGetInstanceProcAddr GetInstanceProcAddr}.</p>
*
* <p>Because an application <b>can</b> call {@link #xrGetInstanceProcAddr GetInstanceProcAddr} before creating an instance, {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns a valid function pointer when the {@code instance} parameter is {@link #XR_NULL_HANDLE NULL_HANDLE} and the {@code name} parameter is one of the following strings:</p>
* <p>Because an application <b>can</b> call {@link #xrGetInstanceProcAddr GetInstanceProcAddr} before creating an instance, {@link #xrGetInstanceProcAddr GetInstanceProcAddr} <b>must</b> return a valid function pointer when the {@code instance} parameter is {@link #XR_NULL_HANDLE NULL_HANDLE} and the {@code name} parameter is one of the following strings:</p>
*
* <h5>No Instance Required</h5>
*
Expand All @@ -872,7 +874,7 @@ public static int nxrGetInstanceProcAddr(long instance, long name, long function
*
* <p>If {@code name} is the name of an extension function, then the result returned by {@link #xrGetInstanceProcAddr GetInstanceProcAddr} will depend upon how the {@code instance} was created. If {@code instance} was created with the related extension’s name appearing in the {@link XrInstanceCreateInfo}{@code ::enabledExtensionNames} array, then {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns a valid function pointer. If the related extension’s name did not appear in the {@link XrInstanceCreateInfo}{@code ::enabledExtensionNames} array during the creation of {@code instance}, then {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns {@link #XR_ERROR_FUNCTION_UNSUPPORTED ERROR_FUNCTION_UNSUPPORTED}. Because of this, function pointers returned by {@link #xrGetInstanceProcAddr GetInstanceProcAddr} using one {@code XrInstance} may not be valid when used with objects related to a different {@code XrInstance}.</p>
*
* <p>The returned function pointer is of type {@code PFN_xrVoidFunction}, and must be cast to the type of the function being queried.</p>
* <p>The returned function pointer is of type {@code PFN_xrVoidFunction}, and <b>must</b> be cast by the application to the type of the function being queried.</p>
*
* <p>The table below defines the various use cases for {@link #xrGetInstanceProcAddr GetInstanceProcAddr} and return value (“{@code fp}” is “{@code function pointer}”) for each case.</p>
*
Expand Down Expand Up @@ -954,7 +956,7 @@ public static int xrGetInstanceProcAddr(@NativeType("XrInstance") @Nullable XrIn
*
* <p>{@link #xrGetInstanceProcAddr 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 <b>can</b> link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs. Loaders <b>must</b> export function symbols for all core OpenXR functions. Because of this, applications that use only the core OpenXR functions have no need to use {@link #xrGetInstanceProcAddr GetInstanceProcAddr}.</p>
*
* <p>Because an application <b>can</b> call {@link #xrGetInstanceProcAddr GetInstanceProcAddr} before creating an instance, {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns a valid function pointer when the {@code instance} parameter is {@link #XR_NULL_HANDLE NULL_HANDLE} and the {@code name} parameter is one of the following strings:</p>
* <p>Because an application <b>can</b> call {@link #xrGetInstanceProcAddr GetInstanceProcAddr} before creating an instance, {@link #xrGetInstanceProcAddr GetInstanceProcAddr} <b>must</b> return a valid function pointer when the {@code instance} parameter is {@link #XR_NULL_HANDLE NULL_HANDLE} and the {@code name} parameter is one of the following strings:</p>
*
* <h5>No Instance Required</h5>
*
Expand All @@ -970,7 +972,7 @@ public static int xrGetInstanceProcAddr(@NativeType("XrInstance") @Nullable XrIn
*
* <p>If {@code name} is the name of an extension function, then the result returned by {@link #xrGetInstanceProcAddr GetInstanceProcAddr} will depend upon how the {@code instance} was created. If {@code instance} was created with the related extension’s name appearing in the {@link XrInstanceCreateInfo}{@code ::enabledExtensionNames} array, then {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns a valid function pointer. If the related extension’s name did not appear in the {@link XrInstanceCreateInfo}{@code ::enabledExtensionNames} array during the creation of {@code instance}, then {@link #xrGetInstanceProcAddr GetInstanceProcAddr} returns {@link #XR_ERROR_FUNCTION_UNSUPPORTED ERROR_FUNCTION_UNSUPPORTED}. Because of this, function pointers returned by {@link #xrGetInstanceProcAddr GetInstanceProcAddr} using one {@code XrInstance} may not be valid when used with objects related to a different {@code XrInstance}.</p>
*
* <p>The returned function pointer is of type {@code PFN_xrVoidFunction}, and must be cast to the type of the function being queried.</p>
* <p>The returned function pointer is of type {@code PFN_xrVoidFunction}, and <b>must</b> be cast by the application to the type of the function being queried.</p>
*
* <p>The table below defines the various use cases for {@link #xrGetInstanceProcAddr GetInstanceProcAddr} and return value (“{@code fp}” is “{@code function pointer}”) for each case.</p>
*
Expand Down
2 changes: 1 addition & 1 deletion modules/lwjgl/openxr/src/templates/kotlin/openxr/Custom.kt
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ fun templateCustomization() {
LongConstant(
"OpenXR current version number.",

"CURRENT_API_VERSION".."XR_MAKE_VERSION(1, 1, 41)"
"CURRENT_API_VERSION".."XR_MAKE_VERSION(1, 1, 42)"
)

LongConstant(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ val HTC_facial_tracking = "HTCFacialTracking".nativeClassXR("HTC_facial_tracking
IntConstant(
"The extension specification version.",

"HTC_facial_tracking_SPEC_VERSION".."2"
"HTC_facial_tracking_SPEC_VERSION".."3"
)

StringConstant(
Expand All @@ -42,6 +42,15 @@ val HTC_facial_tracking = "HTCFacialTracking".nativeClassXR("HTC_facial_tracking
"TYPE_FACIAL_EXPRESSIONS_HTC".."1000104002"
)

EnumConstant(
"Extends {@code XrLipExpressionHTC}.",

"LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC".."12",
"LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC".."13",
"LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC".."14",
"LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC".."15"
)

EnumConstant(
"""
XrEyeExpressionHTC - The blend shapes of eye expression
Expand Down Expand Up @@ -80,10 +89,10 @@ val HTC_facial_tracking = "HTCFacialTracking".nativeClassXR("HTC_facial_tracking
"LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC".."9",
"LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC".."10",
"LIP_EXPRESSION_MOUTH_POUT_HTC".."11",
"LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC".."12",
"LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC".."13",
"LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC".."14",
"LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC".."15",
"LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC".."12",
"LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC".."13",
"LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC".."14",
"LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC".."15",
"LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC".."16",
"LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC".."17",
"LIP_EXPRESSION_CHEEK_SUCK_HTC".."18",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ val VARJO_xr4_controller_interaction = "VARJOXr4ControllerInteraction".nativeCla
<li>pathname:/interaction_profiles/varjo/xr-4_controller</li>
</ul>
<h5>Note</h5>
The interaction profile path pathname:{legacy-path} defined here does not follow current rules for interaction profile names. If this extension were introduced today, it would be called pathname:{properly-suffixed-path}, to allow for modifications when promoted to a KHR extension or the core specification.
Valid for the user paths:
<ul>
Expand Down Expand Up @@ -59,12 +62,36 @@ val VARJO_xr4_controller_interaction = "VARJOXr4ControllerInteraction".nativeCla
<li>subpathname:/input/aim/pose</li>
<li>subpathname:/output/haptic</li>
</ul>
<div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
When the runtime supports {@link XR11 XR_VERSION_1_1} and use of OpenXR 1.1 is requested by the application, this interaction profile <b>must</b> also support
<ul>
<li>subpathname:/input/grip_surface/pose</li>
</ul>
</div>
<div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
When the {@link KHRMaintenance1 XR_KHR_maintenance1} extension is available and enabled, this interaction profile <b>must</b> also support
<ul>
<li>subpathname:/input/grip_surface/pose</li>
</ul>
</div>
<div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
When the {@link EXTPalmPose XR_EXT_palm_pose} extension is available and enabled, this interaction profile <b>must</b> also support
<ul>
<li>subpathname:/input/palm_ext/pose</li>
</ul>
</div>
"""

IntConstant(
"The extension specification version.",

"VARJO_xr4_controller_interaction_SPEC_VERSION".."1"
"VARJO_xr4_controller_interaction_SPEC_VERSION".."2"
)

StringConstant(
Expand Down
Loading

0 comments on commit 0800caf

Please sign in to comment.