org.lwjgl.vulkan.KHRBindMemory2 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 provides versions of {@link VK10#vkBindBufferMemory BindBufferMemory} and {@link VK10#vkBindImageMemory BindImageMemory} that allow multiple bindings to be performed at once, and are extensible.
*
* This extension also introduces {@link #VK_IMAGE_CREATE_ALIAS_BIT_KHR IMAGE_CREATE_ALIAS_BIT_KHR}, which allows “{@code identical}” images that alias the same memory to interpret the contents consistently, even across image layout changes.
*
* Promotion to Vulkan 1.1
*
* All functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.
*
* VK_KHR_bind_memory2
*
*
* - Name String
* - {@code VK_KHR_bind_memory2}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 158
* - Revision
* - 1
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
*
* - Deprecation state
*
* - Promoted to Vulkan 1.1
*
* - Contact
*
* - Tobias Hector tobski
*
*
*
* Other Extension Metadata
*
*
* - Last Modified Date
* - 2017-09-05
* - IP Status
* - No known IP claims.
* - Interactions and External Dependencies
*
* - Promoted to Vulkan 1.1 Core
*
* - Contributors
*
* - Jeff Bolz, NVIDIA
* - Tobias Hector, Imagination Technologies
*
*
*/
public class KHRBindMemory2 {
/** The extension specification version. */
public static final int VK_KHR_BIND_MEMORY_2_SPEC_VERSION = 1;
/** The extension name. */
public static final String VK_KHR_BIND_MEMORY_2_EXTENSION_NAME = "VK_KHR_bind_memory2";
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR}
* - {@link #VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR}
*
*/
public static final int
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001;
/** Extends {@code VkImageCreateFlagBits}. */
public static final int VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x400;
protected KHRBindMemory2() {
throw new UnsupportedOperationException();
}
// --- [ vkBindBufferMemory2KHR ] ---
/**
* Unsafe version of: {@link #vkBindBufferMemory2KHR BindBufferMemory2KHR}
*
* @param bindInfoCount the number of elements in {@code pBindInfos}.
*/
public static int nvkBindBufferMemory2KHR(VkDevice device, int bindInfoCount, long pBindInfos) {
long __functionAddress = device.getCapabilities().vkBindBufferMemory2KHR;
if (CHECKS) {
check(__functionAddress);
}
return callPPI(device.address(), bindInfoCount, pBindInfos, __functionAddress);
}
/**
* See {@link VK11#vkBindBufferMemory2 BindBufferMemory2}.
*
* @param device the logical device that owns the buffers and memory.
* @param pBindInfos a pointer to an array of {@code bindInfoCount} {@link VkBindBufferMemoryInfo} structures describing buffers and memory to bind.
*/
@NativeType("VkResult")
public static int vkBindBufferMemory2KHR(VkDevice device, @NativeType("VkBindBufferMemoryInfo const *") VkBindBufferMemoryInfo.Buffer pBindInfos) {
return nvkBindBufferMemory2KHR(device, pBindInfos.remaining(), pBindInfos.address());
}
// --- [ vkBindImageMemory2KHR ] ---
/**
* Unsafe version of: {@link #vkBindImageMemory2KHR BindImageMemory2KHR}
*
* @param bindInfoCount the number of elements in {@code pBindInfos}.
*/
public static int nvkBindImageMemory2KHR(VkDevice device, int bindInfoCount, long pBindInfos) {
long __functionAddress = device.getCapabilities().vkBindImageMemory2KHR;
if (CHECKS) {
check(__functionAddress);
}
return callPPI(device.address(), bindInfoCount, pBindInfos, __functionAddress);
}
/**
* See {@link VK11#vkBindImageMemory2 BindImageMemory2}.
*
* @param device the logical device that owns the images and memory.
* @param pBindInfos a pointer to an array of {@link VkBindImageMemoryInfo} structures, describing images and memory to bind.
*/
@NativeType("VkResult")
public static int vkBindImageMemory2KHR(VkDevice device, @NativeType("VkBindImageMemoryInfo const *") VkBindImageMemoryInfo.Buffer pBindInfos) {
return nvkBindImageMemory2KHR(device, pBindInfos.remaining(), pBindInfos.address());
}
}