All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.openxr.HTCFoveation Maven / Gradle / Ivy

Go to download

A royalty-free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR)—collectively known as XR—platforms and devices.

There is a newer version: 3.3.6
Show newest version
/*
 * 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.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;

/**
 * The XR_HTC_foveation extension.
 * 
 * 

This extension enables an application to gain rendering performance improvement by reducing the pixel density of areas in the peripheral vision. The areas near the focal point still sustains the original pixel density than periphery.

* *

The application can use this extension in the following steps:

* *
    *
  • Create an {@link XrFoveationApplyInfoHTC} structure with the desired foveation configurations.
  • *
  • Apply the foveation configuration by calling {@link #xrApplyFoveationHTC ApplyFoveationHTC} with desired {@link XrFoveationApplyInfoHTC}.
  • *
* *
Note
* *

This extension is recommended for {@code XrSession} whose {@code XrViewConfigurationType} is {@link XR10#XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO}.

*
*/ public class HTCFoveation { /** The extension specification version. */ public static final int XR_HTC_foveation_SPEC_VERSION = 1; /** The extension name. */ public static final String XR_HTC_FOVEATION_EXTENSION_NAME = "XR_HTC_foveation"; /** * Extends {@code XrStructureType}. * *
Enum values:
* *
    *
  • {@link #XR_TYPE_FOVEATION_APPLY_INFO_HTC TYPE_FOVEATION_APPLY_INFO_HTC}
  • *
  • {@link #XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC}
  • *
  • {@link #XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC}
  • *
*/ public static final int XR_TYPE_FOVEATION_APPLY_INFO_HTC = 1000318000, XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC = 1000318001, XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC = 1000318002; /** * XrFoveationModeHTC - Foveation mode * *
Enumerant Descriptions
* *
    *
  • {@link #XR_FOVEATION_MODE_DISABLE_HTC FOVEATION_MODE_DISABLE_HTC} — No foveation
  • *
  • {@link #XR_FOVEATION_MODE_FIXED_HTC FOVEATION_MODE_FIXED_HTC} — Apply system default setting with fixed clear FOV and periphery quality.
  • *
  • {@link #XR_FOVEATION_MODE_DYNAMIC_HTC FOVEATION_MODE_DYNAMIC_HTC} — Allow system to set foveation dynamically according realtime system metric or other extensions.
  • *
  • {@link #XR_FOVEATION_MODE_CUSTOM_HTC FOVEATION_MODE_CUSTOM_HTC} — Allow application to set foveation with desired clear FOV, periphery quality, and focal center offset.
  • *
* *
See Also
* *

{@link XrFoveationApplyInfoHTC}

*/ public static final int XR_FOVEATION_MODE_DISABLE_HTC = 0, XR_FOVEATION_MODE_FIXED_HTC = 1, XR_FOVEATION_MODE_DYNAMIC_HTC = 2, XR_FOVEATION_MODE_CUSTOM_HTC = 3; /** * XrFoveationLevelHTC - The pixel density drop level of periphery area * *
Enumerant Descriptions
* *
    *
  • {@link #XR_FOVEATION_LEVEL_NONE_HTC FOVEATION_LEVEL_NONE_HTC} — No foveation
  • *
  • {@link #XR_FOVEATION_LEVEL_LOW_HTC FOVEATION_LEVEL_LOW_HTC} — Light periphery pixel density drop and lower performance gain.
  • *
  • {@link #XR_FOVEATION_LEVEL_MEDIUM_HTC FOVEATION_LEVEL_MEDIUM_HTC} — Medium periphery pixel density drop and medium performance gain
  • *
  • {@link #XR_FOVEATION_LEVEL_HIGH_HTC FOVEATION_LEVEL_HIGH_HTC} — Heavy periphery pixel density drop and higher performance gain
  • *
* *
See Also
* *

{@link XrFoveationConfigurationHTC}

*/ public static final int XR_FOVEATION_LEVEL_NONE_HTC = 0, XR_FOVEATION_LEVEL_LOW_HTC = 1, XR_FOVEATION_LEVEL_MEDIUM_HTC = 2, XR_FOVEATION_LEVEL_HIGH_HTC = 3; /** * XrFoveationDynamicFlagBitsHTC - Features allow to change in dynamic mode * *
Flag Descriptions
* *
    *
  • {@link #XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC} — Allow system to set periphery pixel density dynamically.
  • *
  • {@link #XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC} — Allow system to set clear FOV degree dynamically.
  • *
  • {@link #XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC} — Allow system to set focal center offset dynamically.
  • *
*/ public static final int XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC = 0x1, XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC = 0x2, XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC = 0x4; protected HTCFoveation() { throw new UnsupportedOperationException(); } // --- [ xrApplyFoveationHTC ] --- /** Unsafe version of: {@link #xrApplyFoveationHTC ApplyFoveationHTC} */ public static int nxrApplyFoveationHTC(XrSession session, long applyInfo) { long __functionAddress = session.getCapabilities().xrApplyFoveationHTC; if (CHECKS) { check(__functionAddress); XrFoveationApplyInfoHTC.validate(applyInfo); } return callPPI(session.address(), applyInfo, __functionAddress); } /** * Apply foveation config to system. * *
C Specification
* *

The {@link #xrApplyFoveationHTC ApplyFoveationHTC} function is defined as:

* *

     * XrResult xrApplyFoveationHTC(
     *     XrSession                                   session,
     *     const XrFoveationApplyInfoHTC*              applyInfo);
* *
Description
* *

The foveation configuration will be applied after this call, and the state will persist until the next call to {@link #xrApplyFoveationHTC ApplyFoveationHTC} or the end of this {@code XrSession}, whichever comes first. You should not call {@link #xrApplyFoveationHTC ApplyFoveationHTC} during rendering to target image layer {@link XrSwapchainSubImage} in render loop.

* *
Valid Usage (Implicit)
* *
    *
  • The {@link HTCFoveation XR_HTC_foveation} extension must be enabled prior to calling {@link #xrApplyFoveationHTC ApplyFoveationHTC}
  • *
  • {@code session} must be a valid {@code XrSession} handle
  • *
  • {@code applyInfo} must be a pointer to a valid {@link XrFoveationApplyInfoHTC} structure
  • *
* *
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_LIMIT_REACHED ERROR_LIMIT_REACHED}
  • *
*
* *
See Also
* *

{@link XrFoveationApplyInfoHTC}

* * @param session a handle to an {@code XrSession} in which the foveation will apply to. * @param applyInfo a pointer to an {@link XrFoveationApplyInfoHTC} structure containing information about the foveation configuration and applied {@link XrSwapchainSubImage}. */ @NativeType("XrResult") public static int xrApplyFoveationHTC(XrSession session, @NativeType("XrFoveationApplyInfoHTC const *") XrFoveationApplyInfoHTC applyInfo) { return nxrApplyFoveationHTC(session, applyInfo.address()); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy