org.lwjgl.vulkan.KHRDrawIndirectCount 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 is based off the {@link AMDDrawIndirectCount VK_AMD_draw_indirect_count} extension. This extension allows an application to source the number of draws for indirect draw calls from a buffer.
*
* Applications might want to do culling on the GPU via a compute shader prior to drawing. This enables the application to generate an arbitrary number of drawing commands and execute them without host intervention.
*
* Promotion to Vulkan 1.2
*
* All functionality in this extension is included in core Vulkan 1.2, with the KHR suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the entry points {@link VK12#vkCmdDrawIndirectCount CmdDrawIndirectCount} and {@link VK12#vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount} are optional. The original type, enum and command names are still available as aliases of the core functionality.
*
* VK_KHR_draw_indirect_count
*
*
* - Name String
* - {@code VK_KHR_draw_indirect_count}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 170
* - Revision
* - 1
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
*
* - Deprecation state
*
* - Promoted to Vulkan 1.2
*
* - Contact
*
* - Piers Daniell pdaniell-nv
*
*
*
* Other Extension Metadata
*
*
* - Last Modified Date
* - 2017-08-25
* - Interactions and External Dependencies
*
* - Promoted to Vulkan 1.2 Core
*
* - IP Status
* - No known IP claims.
* - Contributors
*
* - Matthaeus G. Chajdas, AMD
* - Derrick Owens, AMD
* - Graham Sellers, AMD
* - Daniel Rakos, AMD
* - Dominik Witczak, AMD
* - Piers Daniell, NVIDIA
*
*
*/
public class KHRDrawIndirectCount {
/** The extension specification version. */
public static final int VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION = 1;
/** The extension name. */
public static final String VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_KHR_draw_indirect_count";
protected KHRDrawIndirectCount() {
throw new UnsupportedOperationException();
}
// --- [ vkCmdDrawIndirectCountKHR ] ---
/**
* See {@link VK12#vkCmdDrawIndirectCount CmdDrawIndirectCount}.
*
* @param commandBuffer the command buffer into which the command is recorded.
* @param buffer the buffer containing draw parameters.
* @param offset the byte offset into {@code buffer} where parameters begin.
* @param countBuffer the buffer containing the draw count.
* @param countBufferOffset the byte offset into {@code countBuffer} where the draw count begins.
* @param maxDrawCount specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in {@code countBuffer} and {@code maxDrawCount}.
* @param stride the byte stride between successive sets of draw parameters.
*/
public static void vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, @NativeType("VkBuffer") long buffer, @NativeType("VkDeviceSize") long offset, @NativeType("VkBuffer") long countBuffer, @NativeType("VkDeviceSize") long countBufferOffset, @NativeType("uint32_t") int maxDrawCount, @NativeType("uint32_t") int stride) {
long __functionAddress = commandBuffer.getCapabilities().vkCmdDrawIndirectCountKHR;
if (CHECKS) {
check(__functionAddress);
}
callPJJJJV(commandBuffer.address(), buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, __functionAddress);
}
// --- [ vkCmdDrawIndexedIndirectCountKHR ] ---
/**
* See {@link VK12#vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount}.
*
* @param commandBuffer the command buffer into which the command is recorded.
* @param buffer the buffer containing draw parameters.
* @param offset the byte offset into {@code buffer} where parameters begin.
* @param countBuffer the buffer containing the draw count.
* @param countBufferOffset the byte offset into {@code countBuffer} where the draw count begins.
* @param maxDrawCount specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in {@code countBuffer} and {@code maxDrawCount}.
* @param stride the byte stride between successive sets of draw parameters.
*/
public static void vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, @NativeType("VkBuffer") long buffer, @NativeType("VkDeviceSize") long offset, @NativeType("VkBuffer") long countBuffer, @NativeType("VkDeviceSize") long countBufferOffset, @NativeType("uint32_t") int maxDrawCount, @NativeType("uint32_t") int stride) {
long __functionAddress = commandBuffer.getCapabilities().vkCmdDrawIndexedIndirectCountKHR;
if (CHECKS) {
check(__functionAddress);
}
callPJJJJV(commandBuffer.address(), buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, __functionAddress);
}
}