org.lwjgl.openxr.MLFacialExpression Maven / Gradle / Ivy
Show all versions of lwjgl-openxr Show documentation
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.openxr;
import org.lwjgl.*;
import org.lwjgl.system.*;
import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
import static org.lwjgl.system.MemoryUtil.*;
/**
* The XR_ML_facial_expression extension.
*
* This extension provides the weights of facial blend shapes usable for a variety of purposes, such as mood monitoring or interpolating the expression of an avatar’s face.
*
* Permissions
*
* Android applications must have the com.magicleap.permission.FACIAL_EXPRESSION permission listed in their manifest and granted to use this extension, otherwise {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML} will return a {@link #XR_ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML} error. (protection level: dangerous)
*/
public class MLFacialExpression {
/** The extension specification version. */
public static final int XR_ML_facial_expression_SPEC_VERSION = 1;
/** The extension name. */
public static final String XR_ML_FACIAL_EXPRESSION_EXTENSION_NAME = "XR_ML_facial_expression";
/** Extends {@code XrResult}. */
public static final int XR_ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML = 1000482000;
/** Extends {@code XrObjectType}. */
public static final int XR_OBJECT_TYPE_FACIAL_EXPRESSION_CLIENT_ML = 1000482000;
/**
* Extends {@code XrStructureType}.
*
* Enum values:
*
*
* - {@link #XR_TYPE_SYSTEM_FACIAL_EXPRESSION_PROPERTIES_ML TYPE_SYSTEM_FACIAL_EXPRESSION_PROPERTIES_ML}
* - {@link #XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML}
* - {@link #XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML}
* - {@link #XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML}
*
*/
public static final int
XR_TYPE_SYSTEM_FACIAL_EXPRESSION_PROPERTIES_ML = 1000482004,
XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML = 1000482005,
XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML = 1000482006,
XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML = 1000482007;
/**
* XrFacialBlendShapeML - The names of trackable blend shapes
*
* See Also
*
* {@link XrFacialExpressionBlendShapePropertiesML}, {@link XrFacialExpressionClientCreateInfoML}
*
* Enum values:
*
*
* - {@link #XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_L_ML FACIAL_BLEND_SHAPE_BROW_LOWERER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_R_ML FACIAL_BLEND_SHAPE_BROW_LOWERER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_L_ML FACIAL_BLEND_SHAPE_CHEEK_RAISER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_R_ML FACIAL_BLEND_SHAPE_CHEEK_RAISER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_CHIN_RAISER_ML FACIAL_BLEND_SHAPE_CHIN_RAISER_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_DIMPLER_L_ML FACIAL_BLEND_SHAPE_DIMPLER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_DIMPLER_R_ML FACIAL_BLEND_SHAPE_DIMPLER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_L_ML FACIAL_BLEND_SHAPE_EYES_CLOSED_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_R_ML FACIAL_BLEND_SHAPE_EYES_CLOSED_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_L_ML FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_R_ML FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_JAW_DROP_ML FACIAL_BLEND_SHAPE_JAW_DROP_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_L_ML FACIAL_BLEND_SHAPE_LID_TIGHTENER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_R_ML FACIAL_BLEND_SHAPE_LID_TIGHTENER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_L_ML FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_R_ML FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_L_ML FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_R_ML FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LB_ML FACIAL_BLEND_SHAPE_LIP_FUNNELER_LB_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LT_ML FACIAL_BLEND_SHAPE_LIP_FUNNELER_LT_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RB_ML FACIAL_BLEND_SHAPE_LIP_FUNNELER_RB_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RT_ML FACIAL_BLEND_SHAPE_LIP_FUNNELER_RT_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_L_ML FACIAL_BLEND_SHAPE_LIP_PRESSOR_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_R_ML FACIAL_BLEND_SHAPE_LIP_PRESSOR_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_L_ML FACIAL_BLEND_SHAPE_LIP_PUCKER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_R_ML FACIAL_BLEND_SHAPE_LIP_PUCKER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_L_ML FACIAL_BLEND_SHAPE_LIP_STRETCHER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_R_ML FACIAL_BLEND_SHAPE_LIP_STRETCHER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LB_ML FACIAL_BLEND_SHAPE_LIP_SUCK_LB_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LT_ML FACIAL_BLEND_SHAPE_LIP_SUCK_LT_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RB_ML FACIAL_BLEND_SHAPE_LIP_SUCK_RB_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RT_ML FACIAL_BLEND_SHAPE_LIP_SUCK_RT_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_L_ML FACIAL_BLEND_SHAPE_LIP_TIGHTENER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_R_ML FACIAL_BLEND_SHAPE_LIP_TIGHTENER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LIPS_TOWARD_ML FACIAL_BLEND_SHAPE_LIPS_TOWARD_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_L_ML FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_R_ML FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_L_ML FACIAL_BLEND_SHAPE_NOSE_WRINKLER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_R_ML FACIAL_BLEND_SHAPE_NOSE_WRINKLER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_L_ML FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_R_ML FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_L_ML FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_R_ML FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_L_ML FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_L_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_R_ML FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_R_ML}
* - {@link #XR_FACIAL_BLEND_SHAPE_TONGUE_OUT_ML FACIAL_BLEND_SHAPE_TONGUE_OUT_ML}
*
*/
public static final int
XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_L_ML = 0,
XR_FACIAL_BLEND_SHAPE_BROW_LOWERER_R_ML = 1,
XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_L_ML = 2,
XR_FACIAL_BLEND_SHAPE_CHEEK_RAISER_R_ML = 3,
XR_FACIAL_BLEND_SHAPE_CHIN_RAISER_ML = 4,
XR_FACIAL_BLEND_SHAPE_DIMPLER_L_ML = 5,
XR_FACIAL_BLEND_SHAPE_DIMPLER_R_ML = 6,
XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_L_ML = 7,
XR_FACIAL_BLEND_SHAPE_EYES_CLOSED_R_ML = 8,
XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_L_ML = 9,
XR_FACIAL_BLEND_SHAPE_INNER_BROW_RAISER_R_ML = 10,
XR_FACIAL_BLEND_SHAPE_JAW_DROP_ML = 11,
XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_L_ML = 12,
XR_FACIAL_BLEND_SHAPE_LID_TIGHTENER_R_ML = 13,
XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_L_ML = 14,
XR_FACIAL_BLEND_SHAPE_LIP_CORNER_DEPRESSOR_R_ML = 15,
XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_L_ML = 16,
XR_FACIAL_BLEND_SHAPE_LIP_CORNER_PULLER_R_ML = 17,
XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LB_ML = 18,
XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_LT_ML = 19,
XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RB_ML = 20,
XR_FACIAL_BLEND_SHAPE_LIP_FUNNELER_RT_ML = 21,
XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_L_ML = 22,
XR_FACIAL_BLEND_SHAPE_LIP_PRESSOR_R_ML = 23,
XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_L_ML = 24,
XR_FACIAL_BLEND_SHAPE_LIP_PUCKER_R_ML = 25,
XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_L_ML = 26,
XR_FACIAL_BLEND_SHAPE_LIP_STRETCHER_R_ML = 27,
XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LB_ML = 28,
XR_FACIAL_BLEND_SHAPE_LIP_SUCK_LT_ML = 29,
XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RB_ML = 30,
XR_FACIAL_BLEND_SHAPE_LIP_SUCK_RT_ML = 31,
XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_L_ML = 32,
XR_FACIAL_BLEND_SHAPE_LIP_TIGHTENER_R_ML = 33,
XR_FACIAL_BLEND_SHAPE_LIPS_TOWARD_ML = 34,
XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_L_ML = 35,
XR_FACIAL_BLEND_SHAPE_LOWER_LIP_DEPRESSOR_R_ML = 36,
XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_L_ML = 37,
XR_FACIAL_BLEND_SHAPE_NOSE_WRINKLER_R_ML = 38,
XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_L_ML = 39,
XR_FACIAL_BLEND_SHAPE_OUTER_BROW_RAISER_R_ML = 40,
XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_L_ML = 41,
XR_FACIAL_BLEND_SHAPE_UPPER_LID_RAISER_R_ML = 42,
XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_L_ML = 43,
XR_FACIAL_BLEND_SHAPE_UPPER_LIP_RAISER_R_ML = 44,
XR_FACIAL_BLEND_SHAPE_TONGUE_OUT_ML = 45;
/**
* XrFacialExpressionBlendShapePropertiesFlagBitsML - Flag bits for facial expression blend shape properties.
*
* Description
*
* The flag bits' meaning are described as below:
*
* Flag Descriptions
*
*
* - {@link #XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_VALID_BIT_ML FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_VALID_BIT_ML} — Indicates whether the blend shape is valid.
* - {@link #XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_TRACKED_BIT_ML FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_TRACKED_BIT_ML} — Indicates whether the blend shape is being tracked by the runtime.
*
*
* See Also
*
* {@link XrFacialExpressionBlendShapePropertiesML}
*/
public static final int
XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_VALID_BIT_ML = 0x1,
XR_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_TRACKED_BIT_ML = 0x2;
protected MLFacialExpression() {
throw new UnsupportedOperationException();
}
// --- [ xrCreateFacialExpressionClientML ] ---
/** Unsafe version of: {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML} */
public static int nxrCreateFacialExpressionClientML(XrSession session, long createInfo, long facialExpressionClient) {
long __functionAddress = session.getCapabilities().xrCreateFacialExpressionClientML;
if (CHECKS) {
check(__functionAddress);
}
return callPPPI(session.address(), createInfo, facialExpressionClient, __functionAddress);
}
/**
* Creates a face tracking handle.
*
* C Specification
*
* The {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML} function is defined as:
*
*
* XrResult xrCreateFacialExpressionClientML(
* XrSession session,
* const XrFacialExpressionClientCreateInfoML* createInfo,
* XrFacialExpressionClientML* facialExpressionClient);
*
* Description
*
* An application can create an {@code XrFacialExpressionClientML} handle using {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML} function.
*
* If the system does not support parsing facial expressions, the runtime must return {@link XR10#XR_ERROR_FEATURE_UNSUPPORTED ERROR_FEATURE_UNSUPPORTED} from {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}. In this case, the runtime must also return {@link XR10#XR_FALSE FALSE} for {@link XrSystemFacialExpressionPropertiesML}{@code ::supportsFacialExpression} when the function {@link XR10#xrGetSystemProperties GetSystemProperties} is called.
*
* Valid Usage (Implicit)
*
*
* - The {@link MLFacialExpression XR_ML_facial_expression} extension must be enabled prior to calling {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}
* - {@code session} must be a valid {@code XrSession} handle
* - {@code createInfo} must be a pointer to a valid {@link XrFacialExpressionClientCreateInfoML} structure
* - {@code facialExpressionClient} must be a pointer to an {@code XrFacialExpressionClientML} handle
*
*
* Return Codes
*
*
* - On success, this command returns
*
* - {@link XR10#XR_SUCCESS SUCCESS}
* - {@link XR10#XR_SESSION_LOSS_PENDING SESSION_LOSS_PENDING}
*
* - On failure, this command returns
*
* - {@link XR10#XR_ERROR_FUNCTION_UNSUPPORTED ERROR_FUNCTION_UNSUPPORTED}
* - {@link XR10#XR_ERROR_VALIDATION_FAILURE ERROR_VALIDATION_FAILURE}
* - {@link XR10#XR_ERROR_RUNTIME_FAILURE ERROR_RUNTIME_FAILURE}
* - {@link XR10#XR_ERROR_HANDLE_INVALID ERROR_HANDLE_INVALID}
* - {@link XR10#XR_ERROR_INSTANCE_LOST ERROR_INSTANCE_LOST}
* - {@link XR10#XR_ERROR_SESSION_LOST ERROR_SESSION_LOST}
* - {@link XR10#XR_ERROR_OUT_OF_MEMORY ERROR_OUT_OF_MEMORY}
* - {@link XR10#XR_ERROR_LIMIT_REACHED ERROR_LIMIT_REACHED}
* - {@link XR10#XR_ERROR_FEATURE_UNSUPPORTED ERROR_FEATURE_UNSUPPORTED}
* - {@link #XR_ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML ERROR_FACIAL_EXPRESSION_PERMISSION_DENIED_ML}
*
*
*
* See Also
*
* {@link XrFacialExpressionClientCreateInfoML}
*
* @param session an {@code XrSession} in which the facial expression client will be active.
* @param createInfo a pointer to the {@link XrFacialExpressionClientCreateInfoML} used to specify the facial expression client.
* @param facialExpressionClient a pointer to the returned {@code XrFacialExpressionClientML} handle.
*/
@NativeType("XrResult")
public static int xrCreateFacialExpressionClientML(XrSession session, @NativeType("XrFacialExpressionClientCreateInfoML const *") XrFacialExpressionClientCreateInfoML createInfo, @NativeType("XrFacialExpressionClientML *") PointerBuffer facialExpressionClient) {
if (CHECKS) {
check(facialExpressionClient, 1);
}
return nxrCreateFacialExpressionClientML(session, createInfo.address(), memAddress(facialExpressionClient));
}
// --- [ xrDestroyFacialExpressionClientML ] ---
/**
* Destroys a facial expression client handle.
*
* C Specification
*
* The {@link #xrDestroyFacialExpressionClientML DestroyFacialExpressionClientML} function is defined as:
*
*
* XrResult xrDestroyFacialExpressionClientML(
* XrFacialExpressionClientML facialExpressionClient);
*
* Description
*
* The {@link #xrDestroyFacialExpressionClientML DestroyFacialExpressionClientML} function releases the {@code facialExpressionClient} and the underlying resources.
*
* Valid Usage (Implicit)
*
*
* - The {@link MLFacialExpression XR_ML_facial_expression} extension must be enabled prior to calling {@link #xrDestroyFacialExpressionClientML DestroyFacialExpressionClientML}
* - {@code facialExpressionClient} must be a valid {@code XrFacialExpressionClientML} handle
*
*
* Thread Safety
*
*
* - Access to {@code facialExpressionClient}, and any child handles, must be externally synchronized
*
*
* Return Codes
*
*
* - On success, this command returns
*
* - {@link XR10#XR_SUCCESS SUCCESS}
*
* - On failure, this command returns
*
* - {@link XR10#XR_ERROR_FUNCTION_UNSUPPORTED ERROR_FUNCTION_UNSUPPORTED}
* - {@link XR10#XR_ERROR_HANDLE_INVALID ERROR_HANDLE_INVALID}
*
*
*
* See Also
*
* {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}
*
* @param facialExpressionClient an {@code XrFacialExpressionClientML} previously created by {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}.
*/
@NativeType("XrResult")
public static int xrDestroyFacialExpressionClientML(XrFacialExpressionClientML facialExpressionClient) {
long __functionAddress = facialExpressionClient.getCapabilities().xrDestroyFacialExpressionClientML;
if (CHECKS) {
check(__functionAddress);
}
return callPI(facialExpressionClient.address(), __functionAddress);
}
// --- [ xrGetFacialExpressionBlendShapePropertiesML ] ---
/**
* Unsafe version of: {@link #xrGetFacialExpressionBlendShapePropertiesML GetFacialExpressionBlendShapePropertiesML}
*
* @param blendShapeCount a {@code uint32_t} specifying the size of the {@code blendShapes} array.
*/
public static int nxrGetFacialExpressionBlendShapePropertiesML(XrFacialExpressionClientML facialExpressionClient, long blendShapeGetInfo, int blendShapeCount, long blendShapes) {
long __functionAddress = facialExpressionClient.getCapabilities().xrGetFacialExpressionBlendShapePropertiesML;
if (CHECKS) {
check(__functionAddress);
}
return callPPPI(facialExpressionClient.address(), blendShapeGetInfo, blendShapeCount, blendShapes, __functionAddress);
}
/**
* Obtain blend shape of facial expression.
*
* C Specification
*
* The {@link #xrGetFacialExpressionBlendShapePropertiesML GetFacialExpressionBlendShapePropertiesML} function is defined as:
*
*
* XrResult xrGetFacialExpressionBlendShapePropertiesML(
* XrFacialExpressionClientML facialExpressionClient,
* const XrFacialExpressionBlendShapeGetInfoML* blendShapeGetInfo,
* uint32_t blendShapeCount,
* XrFacialExpressionBlendShapePropertiesML* blendShapes);
*
* Description
*
* {@link XrFacialExpressionBlendShapePropertiesML} is better thought of as a mutable state rather than an immutable property. In general, OpenXR convention tries to keep property data types to be immutable.
*
* The {@link #xrGetFacialExpressionBlendShapePropertiesML GetFacialExpressionBlendShapePropertiesML} function returns the {@link XrFacialExpressionBlendShapePropertiesML} of each blend shape requested in {@link XrFacialExpressionClientCreateInfoML}
*
* Each {@link XrFacialExpressionBlendShapePropertiesML} in {@code blendShapes} must have its {@code requestedFacialBlendShape} member variable initialized before being passed into {@link #xrGetFacialExpressionBlendShapePropertiesML GetFacialExpressionBlendShapePropertiesML}.
*
* If a blend shape in {@code blendShapes} is not enabled in {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}, the runtime must return {@link XR10#XR_ERROR_VALIDATION_FAILURE ERROR_VALIDATION_FAILURE}.
*
* For unsupported blend shapes, the runtime must clear {@link XrFacialExpressionBlendShapePropertiesML}{@code ::flags} and the runtime must also return {@link XR10#XR_SUCCESS SUCCESS}.
*
* Valid Usage (Implicit)
*
*
* - The {@link MLFacialExpression XR_ML_facial_expression} extension must be enabled prior to calling {@link #xrGetFacialExpressionBlendShapePropertiesML GetFacialExpressionBlendShapePropertiesML}
* - {@code facialExpressionClient} must be a valid {@code XrFacialExpressionClientML} handle
* - {@code blendShapeGetInfo} must be a pointer to a valid {@link XrFacialExpressionBlendShapeGetInfoML} structure
* - {@code blendShapes} must be a pointer to an array of {@code blendShapeCount} {@link XrFacialExpressionBlendShapePropertiesML} structures
* - The {@code blendShapeCount} parameter must be greater than 0
*
*
* Return Codes
*
*
* - On success, this command returns
*
* - {@link XR10#XR_SUCCESS SUCCESS}
* - {@link XR10#XR_SESSION_LOSS_PENDING SESSION_LOSS_PENDING}
*
* - On failure, this command returns
*
* - {@link XR10#XR_ERROR_FUNCTION_UNSUPPORTED ERROR_FUNCTION_UNSUPPORTED}
* - {@link XR10#XR_ERROR_VALIDATION_FAILURE ERROR_VALIDATION_FAILURE}
* - {@link XR10#XR_ERROR_RUNTIME_FAILURE ERROR_RUNTIME_FAILURE}
* - {@link XR10#XR_ERROR_HANDLE_INVALID ERROR_HANDLE_INVALID}
* - {@link XR10#XR_ERROR_INSTANCE_LOST ERROR_INSTANCE_LOST}
* - {@link XR10#XR_ERROR_SESSION_LOST ERROR_SESSION_LOST}
* - {@link XR10#XR_ERROR_TIME_INVALID ERROR_TIME_INVALID}
*
*
*
* See Also
*
* {@link XrFacialExpressionBlendShapeGetInfoML}, {@link XrFacialExpressionBlendShapePropertiesML}, {@link XrFacialExpressionClientCreateInfoML}
*
* @param facialExpressionClient an {@code XrFacialExpressionClientML} previously created by {@link #xrCreateFacialExpressionClientML CreateFacialExpressionClientML}.
* @param blendShapeGetInfo a pointer to {@link XrFacialExpressionBlendShapeGetInfoML} describing information to obtain facial expression.
* @param blendShapes an application allocated array of {@link XrFacialExpressionBlendShapePropertiesML} that contains the blend shapes information. This array acts as both input and output for this function. The array may be a subset of blend shapes.
*/
@NativeType("XrResult")
public static int xrGetFacialExpressionBlendShapePropertiesML(XrFacialExpressionClientML facialExpressionClient, @NativeType("XrFacialExpressionBlendShapeGetInfoML const *") XrFacialExpressionBlendShapeGetInfoML blendShapeGetInfo, @NativeType("XrFacialExpressionBlendShapePropertiesML *") XrFacialExpressionBlendShapePropertiesML.Buffer blendShapes) {
return nxrGetFacialExpressionBlendShapePropertiesML(facialExpressionClient, blendShapeGetInfo.address(), blendShapes.remaining(), blendShapes.address());
}
}