Package org.lwjgl.vulkan
Class VkDrawIndirectCommand
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkDrawIndirectCommand>
org.lwjgl.vulkan.VkDrawIndirectCommand
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkDrawIndirectCommand
extends org.lwjgl.system.Struct<VkDrawIndirectCommand>
implements org.lwjgl.system.NativeResource
Structure specifying an indirect drawing command.
Description
The members of VkDrawIndirectCommand have the same meaning as the similarly named parameters of CmdDraw.
Valid Usage
- If the bound graphics pipeline state was created with
VkPipelineVertexInputDivisorStateCreateInfoin thepNextchain ofVkGraphicsPipelineCreateInfo::pVertexInputState, any member ofVkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisorshas a value other than 1 indivisor, andVkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be 0 - If shader objects are used for drawing or the bound graphics pipeline state was created with the
DYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled, any member of thepVertexBindingDescriptionsparameter to theCmdSetVertexInputEXTcall that sets this dynamic state has a value other than 1 indivisor, andVkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be 0
- If the
drawIndirectFirstInstancefeature is not enabled,firstInstancemust be 0
See Also
Layout
struct VkDrawIndirectCommand {
uint32_t vertexCount();
uint32_t instanceCount();
uint32_t firstVertex();
uint32_t firstInstance();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkDrawIndirectCommand(ByteBuffer container) Creates aVkDrawIndirectCommandinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkDrawIndirectCommandcalloc()Returns a newVkDrawIndirectCommandinstance allocated withmemCalloc.static VkDrawIndirectCommand.Buffercalloc(int capacity) Returns a newVkDrawIndirectCommand.Bufferinstance allocated withmemCalloc.static VkDrawIndirectCommand.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkDrawIndirectCommand.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkDrawIndirectCommandcalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkDrawIndirectCommandinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkDrawIndirectCommandDeprecated.static VkDrawIndirectCommand.BuffercallocStack(int capacity) Deprecated.static VkDrawIndirectCommand.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkDrawIndirectCommandcallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkDrawIndirectCommandcreate()Returns a newVkDrawIndirectCommandinstance allocated withBufferUtils.static VkDrawIndirectCommand.Buffercreate(int capacity) Returns a newVkDrawIndirectCommand.Bufferinstance allocated withBufferUtils.static VkDrawIndirectCommandcreate(long address) Returns a newVkDrawIndirectCommandinstance for the specified memory address.static VkDrawIndirectCommand.Buffercreate(long address, int capacity) Create aVkDrawIndirectCommand.Bufferinstance at the specified memory.static @Nullable VkDrawIndirectCommandcreateSafe(long address) static @Nullable VkDrawIndirectCommand.BuffercreateSafe(long address, int capacity) intthe instance ID of the first instance to draw.firstInstance(int value) Sets the specified value to thefirstInstance()field.intthe index of the first vertex to draw.firstVertex(int value) Sets the specified value to thefirstVertex()field.intthe number of instances to draw.instanceCount(int value) Sets the specified value to theinstanceCount()field.static VkDrawIndirectCommandmalloc()Returns a newVkDrawIndirectCommandinstance allocated withmemAlloc.static VkDrawIndirectCommand.Buffermalloc(int capacity) Returns a newVkDrawIndirectCommand.Bufferinstance allocated withmemAlloc.static VkDrawIndirectCommand.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkDrawIndirectCommand.Bufferinstance allocated on the specifiedMemoryStack.static VkDrawIndirectCommandmalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkDrawIndirectCommandinstance allocated on the specifiedMemoryStack.static VkDrawIndirectCommandDeprecated.static VkDrawIndirectCommand.BuffermallocStack(int capacity) Deprecated.static VkDrawIndirectCommand.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkDrawIndirectCommandmallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static intnfirstInstance(long struct) Unsafe version offirstInstance().static voidnfirstInstance(long struct, int value) Unsafe version offirstInstance.static intnfirstVertex(long struct) Unsafe version offirstVertex().static voidnfirstVertex(long struct, int value) Unsafe version offirstVertex.static intninstanceCount(long struct) Unsafe version ofinstanceCount().static voidninstanceCount(long struct, int value) Unsafe version ofinstanceCount.static intnvertexCount(long struct) Unsafe version ofvertexCount().static voidnvertexCount(long struct, int value) Unsafe version ofvertexCount.set(int vertexCount, int instanceCount, int firstVertex, int firstInstance) Initializes this struct with the specified values.set(VkDrawIndirectCommand src) Copies the specified struct data to this struct.intsizeof()intthe number of vertices to draw.vertexCount(int value) Sets the specified value to thevertexCount()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
VERTEXCOUNT
public static final int VERTEXCOUNTThe struct member offsets. -
INSTANCECOUNT
public static final int INSTANCECOUNTThe struct member offsets. -
FIRSTVERTEX
public static final int FIRSTVERTEXThe struct member offsets. -
FIRSTINSTANCE
public static final int FIRSTINSTANCEThe struct member offsets.
-
-
Constructor Details
-
VkDrawIndirectCommand
Creates aVkDrawIndirectCommandinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkDrawIndirectCommand>
-
vertexCount
public int vertexCount()the number of vertices to draw. -
instanceCount
public int instanceCount()the number of instances to draw. -
firstVertex
public int firstVertex()the index of the first vertex to draw. -
firstInstance
public int firstInstance()the instance ID of the first instance to draw. -
vertexCount
Sets the specified value to thevertexCount()field. -
instanceCount
Sets the specified value to theinstanceCount()field. -
firstVertex
Sets the specified value to thefirstVertex()field. -
firstInstance
Sets the specified value to thefirstInstance()field. -
set
public VkDrawIndirectCommand set(int vertexCount, int instanceCount, int firstVertex, int firstInstance) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkDrawIndirectCommandinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkDrawIndirectCommandinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkDrawIndirectCommandinstance allocated withBufferUtils. -
create
Returns a newVkDrawIndirectCommandinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkDrawIndirectCommand.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkDrawIndirectCommand.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkDrawIndirectCommand.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkDrawIndirectCommand.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkDrawIndirectCommand.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkDrawIndirectCommand.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkDrawIndirectCommandinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkDrawIndirectCommandinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
Returns a newVkDrawIndirectCommand.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
Returns a newVkDrawIndirectCommand.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nvertexCount
public static int nvertexCount(long struct) Unsafe version ofvertexCount(). -
ninstanceCount
public static int ninstanceCount(long struct) Unsafe version ofinstanceCount(). -
nfirstVertex
public static int nfirstVertex(long struct) Unsafe version offirstVertex(). -
nfirstInstance
public static int nfirstInstance(long struct) Unsafe version offirstInstance(). -
nvertexCount
public static void nvertexCount(long struct, int value) Unsafe version ofvertexCount. -
ninstanceCount
public static void ninstanceCount(long struct, int value) Unsafe version ofinstanceCount. -
nfirstVertex
public static void nfirstVertex(long struct, int value) Unsafe version offirstVertex. -
nfirstInstance
public static void nfirstInstance(long struct, int value) Unsafe version offirstInstance.
-