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

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

/*
 * 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 org.lwjgl.system.libffi.*;

import static org.lwjgl.system.APIUtil.*;
import static org.lwjgl.system.MemoryUtil.*;
import static org.lwjgl.system.libffi.LibFFI.*;

/**
 * Type of callback function invoked by the debug utils.
 * 
 * 
C Specification
* *

 * typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)(
 *             XrDebugUtilsMessageSeverityFlagsEXT              messageSeverity,
 *             XrDebugUtilsMessageTypeFlagsEXT                  messageTypes,
 *             const XrDebugUtilsMessengerCallbackDataEXT*      callbackData,
 *             void*                                            userData);
* *
Description
* *

The callback must not call {@link EXTDebugUtils#xrDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT}.

* *

The callback returns an {@code XrBool32} that indicates to the calling layer the application’s desire to abort the call. A value of {@link XR10#XR_TRUE TRUE} indicates that the application wants to abort this call. If the application returns {@link XR10#XR_FALSE FALSE}, the function must not be aborted. Applications should always return {@link XR10#XR_FALSE FALSE} so that they see the same behavior with and without validation layers enabled.

* *

If the application returns {@link XR10#XR_TRUE TRUE} from its callback and the OpenXR call being aborted returns an {@code XrResult}, the layer will return {@link XR10#XR_ERROR_VALIDATION_FAILURE ERROR_VALIDATION_FAILURE}.

* *

The object pointed to by {@code callbackData} (and any pointers in it recursively) must be valid during the lifetime of the triggered callback. It may become invalid afterwards.

* *
See Also
* *

{@link XrDebugUtilsMessengerCreateInfoEXT}, {@link EXTDebugUtils#xrCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT}

* *

Type

* *

 * XrBool32 (*{@link #invoke}) (
 *     XrDebugUtilsMessageSeverityFlagsEXT messageSeverity,
 *     XrDebugUtilsMessageTypeFlagsEXT messageTypes,
 *     XrDebugUtilsMessengerCallbackDataEXT const *callbackData,
 *     void *userData
 * )
*/ @FunctionalInterface @NativeType("PFN_xrDebugUtilsMessengerCallbackEXT") public interface XrDebugUtilsMessengerCallbackEXTI extends CallbackI { FFICIF CIF = apiCreateCIF( apiStdcall(), ffi_type_uint32, ffi_type_uint64, ffi_type_uint64, ffi_type_pointer, ffi_type_pointer ); @Override default FFICIF getCallInterface() { return CIF; } @Override default void callback(long ret, long args) { int __result = invoke( memGetLong(memGetAddress(args)), memGetLong(memGetAddress(args + POINTER_SIZE)), memGetAddress(memGetAddress(args + 2 * POINTER_SIZE)), memGetAddress(memGetAddress(args + 3 * POINTER_SIZE)) ); apiClosureRet(ret, __result); } /** * Type of callback function invoked by the debug utils. * * @param messageSeverity indicates the single bit value of {@code XrDebugUtilsMessageSeverityFlagsEXT} that triggered this callback. * @param messageTypes indicates the {@code XrDebugUtilsMessageTypeFlagsEXT} specifying which types of event triggered this callback. * @param callbackData contains all the callback related data in the {@link XrDebugUtilsMessengerCallbackDataEXT} structure. * @param userData the user data provided when the {@code XrDebugUtilsMessengerEXT} was created. */ @NativeType("XrBool32") int invoke(@NativeType("XrDebugUtilsMessageSeverityFlagsEXT") long messageSeverity, @NativeType("XrDebugUtilsMessageTypeFlagsEXT") long messageTypes, @NativeType("XrDebugUtilsMessengerCallbackDataEXT const *") long callbackData, @NativeType("void *") long userData); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy