org.lwjgl.vulkan.KHRSharedPresentableImage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lwjgl-vulkan Show documentation
Show all versions of lwjgl-vulkan Show documentation
A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
import org.lwjgl.system.*;
import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
/**
* This extension extends {@code VK_KHR_swapchain} to enable creation of a shared presentable image. This allows the application to use the image while the presention engine is accessing it, in order to reduce the latency between rendering and presentation.
*
*
* - Name String
* - {@code VK_KHR_shared_presentable_image}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 112
* - Revision
* - 1
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
* - Requires {@code VK_KHR_swapchain}
* - Requires {@code VK_KHR_get_physical_device_properties2}
* - Requires {@code VK_KHR_get_surface_capabilities2}
*
* - Contact
*
* - Alon Or-bach @alonorbach
*
* - Last Modified Date
* - 2017-03-20
* - IP Status
* - No known IP claims.
* - Contributors
*
* - Alon Or-bach, Samsung Electronics
* - Ian Elliott, Google
* - Jesse Hall, Google
* - Pablo Ceballos, Google
* - Chris Forbes, Google
* - Jeff Juliano, NVIDIA
* - James Jones, NVIDIA
* - Daniel Rakos, AMD
* - Tobias Hector, Imagination Technologies
* - Graham Connor, Imagination Technologies
* - Michael Worcester, Imagination Technologies
* - Cass Everitt, Oculus
* - Johannes Van Waveren, Oculus
*
*
*/
public class KHRSharedPresentableImage {
/** The extension specification version. */
public static final int VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION = 1;
/** The extension name. */
public static final String VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME = "VK_KHR_shared_presentable_image";
/** Extends {@code VkStructureType}. */
public static final int VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000;
/**
* Extends {@code VkPresentModeKHR}.
*
* Enum values:
*
*
* - {@link #VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR}
* - {@link #VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}
*
*/
public static final int
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001;
/** Extends {@code VkImageLayout}. */
public static final int VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000;
protected KHRSharedPresentableImage() {
throw new UnsupportedOperationException();
}
static boolean isAvailable(VKCapabilitiesDevice caps) {
return checkFunctions(
caps.vkGetSwapchainStatusKHR
);
}
// --- [ vkGetSwapchainStatusKHR ] ---
/**
* Get a swapchain's status.
*
* C Specification
*
* In order to query a swapchain's status when rendering to a shared presentable image, call:
*
*
* VkResult vkGetSwapchainStatusKHR(
* VkDevice device,
* VkSwapchainKHR swapchain);
*
* Valid Usage (Implicit)
*
*
* - {@code device} must be a valid {@code VkDevice} handle
* - {@code swapchain} must be a valid {@code VkSwapchainKHR} handle
* - Both of {@code device}, and {@code swapchain} must have been created, allocated, or retrieved from the same {@code VkInstance}
*
*
* Host Synchronization
*
*
* - Host access to {@code swapchain} must be externally synchronized
*
*
* Return Codes
*
*
* - On success, this command returns
*
* - {@link VK10#VK_SUCCESS SUCCESS}
* - {@link KHRSwapchain#VK_SUBOPTIMAL_KHR SUBOPTIMAL_KHR}
*
* - On failure, this command returns
*
* - {@link VK10#VK_ERROR_OUT_OF_HOST_MEMORY ERROR_OUT_OF_HOST_MEMORY}
* - {@link VK10#VK_ERROR_OUT_OF_DEVICE_MEMORY ERROR_OUT_OF_DEVICE_MEMORY}
* - {@link VK10#VK_ERROR_DEVICE_LOST ERROR_DEVICE_LOST}
* - {@link KHRSwapchain#VK_ERROR_OUT_OF_DATE_KHR ERROR_OUT_OF_DATE_KHR}
* - {@link KHRSurface#VK_ERROR_SURFACE_LOST_KHR ERROR_SURFACE_LOST_KHR}
*
*
*
* @param device the device associated with {@code swapchain}.
* @param swapchain the swapchain to query.
*/
@NativeType("VkResult")
public static int vkGetSwapchainStatusKHR(VkDevice device, @NativeType("VkSwapchainKHR") long swapchain) {
long __functionAddress = device.getCapabilities().vkGetSwapchainStatusKHR;
if (CHECKS) {
check(__functionAddress);
}
return callPJI(__functionAddress, device.address(), swapchain);
}
}