Class VkWriteDescriptorSet
- All Implemented Interfaces:
AutoCloseable
,NativeResource
,Pointer
Description
Only one of pImageInfo
, pBufferInfo
, or pTexelBufferView
members is used according to the descriptor type specified in the descriptorType
member of the containing VkWriteDescriptorSet
structure, or none of them in case descriptorType
is DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
, in which case the source data for the descriptor writes is taken from the VkWriteDescriptorSetInlineUniformBlock
structure included in the pNext
chain of VkWriteDescriptorSet
, or if descriptorType
is DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
, in which case the source data for the descriptor writes is taken from the VkWriteDescriptorSetAccelerationStructureKHR
structure in the pNext
chain of VkWriteDescriptorSet
, or if descriptorType
is DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
, in which case the source data for the descriptor writes is taken from the VkWriteDescriptorSetAccelerationStructureNV
structure in the pNext
chain of VkWriteDescriptorSet
, as specified below.
If the nullDescriptor
feature is enabled, the buffer, acceleration structure, imageView, or bufferView can be NULL_HANDLE
. Loads from a null descriptor return zero values and stores and atomics to a null descriptor are discarded. A null acceleration structure descriptor results in the miss shader being invoked.
If the destination descriptor is a mutable descriptor, the active descriptor type for the destination descriptor becomes descriptorType
.
If the dstBinding
has fewer than descriptorCount
array elements remaining starting from dstArrayElement
, then the remainder will be used to update the subsequent binding - dstBinding+1
starting at array element zero. If a binding has a descriptorCount
of zero, it is skipped. This behavior applies recursively, with the update affecting consecutive bindings as needed to update all descriptorCount
descriptors. Consecutive bindings must have identical VkDescriptorType
, VkShaderStageFlags
, VkDescriptorBindingFlagBits
, and immutable samplers references. In addition, if the VkDescriptorType
is DESCRIPTOR_TYPE_MUTABLE_EXT
, the supported descriptor types in VkMutableDescriptorTypeCreateInfoEXT
must be equally defined.
Note
The same behavior applies to bindings with a descriptor type of DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
where descriptorCount
specifies the number of bytes to update while dstArrayElement
specifies the starting byte offset, thus in this case if the dstBinding
has a smaller byte size than the sum of dstArrayElement
and descriptorCount
, then the remainder will be used to update the subsequent binding - dstBinding+1
starting at offset zero. This falls out as a special case of the above rule.
Valid Usage
dstBinding
must be less than or equal to the maximum value ofbinding
of allVkDescriptorSetLayoutBinding
structures specified whendstSet
’s descriptor set layout was createddstBinding
must be a binding with a non-zerodescriptorCount
- All consecutive bindings updated via a single
VkWriteDescriptorSet
structure, except those with adescriptorCount
of zero, must have identicaldescriptorType
andstageFlags
- All consecutive bindings updated via a single
VkWriteDescriptorSet
structure, except those with adescriptorCount
of zero, must all either use immutable samplers or must all not use immutable samplers descriptorType
must match the type ofdstBinding
withindstSet
dstSet
must be a validVkDescriptorSet
handle- The sum of
dstArrayElement
anddescriptorCount
must be less than or equal to the number of array elements in the descriptor set binding specified bydstBinding
, and all applicable consecutive bindings, as described by consecutive binding updates - If
descriptorType
isDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
,dstArrayElement
must be an integer multiple of 4 - If
descriptorType
isDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
,descriptorCount
must be an integer multiple of 4 - If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
orDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
, each element ofpTexelBufferView
must be either a validVkBufferView
handle orNULL_HANDLE
- If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
orDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
and thenullDescriptor
feature is not enabled, each element ofpTexelBufferView
must not beNULL_HANDLE
- If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
,DESCRIPTOR_TYPE_STORAGE_BUFFER
,DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
, orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
,pBufferInfo
must be a valid pointer to an array ofdescriptorCount
validVkDescriptorBufferInfo
structures - If
descriptorType
isDESCRIPTOR_TYPE_SAMPLER
orDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, anddstSet
was not allocated with a layout that included immutable samplers fordstBinding
withdescriptorType
, thesampler
member of each element ofpImageInfo
must be a validVkSampler
object - If
descriptorType
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orDESCRIPTOR_TYPE_STORAGE_IMAGE
, theimageView
member of each element ofpImageInfo
must be either a validVkImageView
handle orNULL_HANDLE
- If
descriptorType
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orDESCRIPTOR_TYPE_STORAGE_IMAGE
, and thenullDescriptor
feature is not enabled, theimageView
member of each element ofpImageInfo
must not beNULL_HANDLE
- If
descriptorType
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, theimageView
member of each element ofpImageInfo
must not beNULL_HANDLE
- If
descriptorType
isDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
, thepNext
chain must include aVkWriteDescriptorSetInlineUniformBlock
structure whosedataSize
member equalsdescriptorCount
- If
descriptorType
isDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
, thepNext
chain must include aVkWriteDescriptorSetAccelerationStructureKHR
structure whoseaccelerationStructureCount
member equalsdescriptorCount
- If
descriptorType
isDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
, thepNext
chain must include aVkWriteDescriptorSetAccelerationStructureNV
structure whoseaccelerationStructureCount
member equalsdescriptorCount
- If
descriptorType
isDESCRIPTOR_TYPE_SAMPLED_IMAGE
, then theimageView
member of eachpImageInfo
element must have been created without aVkSamplerYcbcrConversionInfo
structure in itspNext
chain - If
descriptorType
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, and if any element ofpImageInfo
has aimageView
member that was created with aVkSamplerYcbcrConversionInfo
structure in itspNext
chain, thendstSet
must have been allocated with a layout that included immutable samplers fordstBinding
, and the corresponding immutable sampler must have been created with an identically definedVkSamplerYcbcrConversionInfo
object - If
descriptorType
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, anddstSet
was allocated with a layout that included immutable samplers fordstBinding
, then theimageView
member of each element ofpImageInfo
which corresponds to an immutable sampler that enables sampler Y′CBCR conversion must have been created with aVkSamplerYcbcrConversionInfo
structure in itspNext
chain with an identically definedVkSamplerYcbcrConversionInfo
to the corresponding immutable sampler - If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
orDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
, theoffset
member of each element ofpBufferInfo
must be a multiple ofVkPhysicalDeviceLimits
::minUniformBufferOffsetAlignment
- If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_BUFFER
orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, theoffset
member of each element ofpBufferInfo
must be a multiple ofVkPhysicalDeviceLimits
::minStorageBufferOffsetAlignment
- If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
,DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
,DESCRIPTOR_TYPE_STORAGE_BUFFER
, orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, and thebuffer
member of any element ofpBufferInfo
is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a singleVkDeviceMemory
object - If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
orDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
, thebuffer
member of each element ofpBufferInfo
must have been created withBUFFER_USAGE_UNIFORM_BUFFER_BIT
set - If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_BUFFER
orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, thebuffer
member of each element ofpBufferInfo
must have been created withBUFFER_USAGE_STORAGE_BUFFER_BIT
set - If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
orDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
, therange
member of each element ofpBufferInfo
, or the effective range ifrange
isWHOLE_SIZE
, must be less than or equal toVkPhysicalDeviceLimits
::maxUniformBufferRange
- If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_BUFFER
orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, therange
member of each element ofpBufferInfo
, or the effective range ifrange
isWHOLE_SIZE
, must be less than or equal toVkPhysicalDeviceLimits
::maxStorageBufferRange
- If
descriptorType
isDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
, thepTexelBufferView
buffer view usage must includeBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
- If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
, thepTexelBufferView
buffer view usage must includeBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
- If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_IMAGE
orDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, theimageView
member of each element ofpImageInfo
must have been created with the identity swizzle - If
descriptorType
isDESCRIPTOR_TYPE_SAMPLED_IMAGE
orDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, theimageView
member of each element ofpImageInfo
must have been created withIMAGE_USAGE_SAMPLED_BIT
set - If
descriptorType
isDESCRIPTOR_TYPE_SAMPLED_IMAGE
theimageLayout
member of each element ofpImageInfo
must be a member of the list given in Sampled Image - If
descriptorType
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
theimageLayout
member of each element ofpImageInfo
must be a member of the list given in Combined Image Sampler - If
descriptorType
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
theimageLayout
member of each element ofpImageInfo
must be a member of the list given in Input Attachment - If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_IMAGE
theimageLayout
member of each element ofpImageInfo
must be a member of the list given in Storage Image - If
descriptorType
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, theimageView
member of each element ofpImageInfo
must have been created withIMAGE_USAGE_INPUT_ATTACHMENT_BIT
set - If
descriptorType
isDESCRIPTOR_TYPE_STORAGE_IMAGE
, theimageView
member of each element ofpImageInfo
must have been created withIMAGE_USAGE_STORAGE_BIT
set - If
descriptorType
isDESCRIPTOR_TYPE_SAMPLER
, thendstSet
must not have been allocated with a layout that included immutable samplers fordstBinding
- If the
VkDescriptorSetLayoutBinding
fordstSet
atdstBinding
isDESCRIPTOR_TYPE_MUTABLE_EXT
, the new active descriptor typedescriptorType
must exist in the correspondingpMutableDescriptorTypeLists
list fordstBinding
- If
descriptorType
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, theimageView
member of each element ofpImageInfo
must have either been created without aVkImageViewMinLodCreateInfoEXT
included in thepNext
chain or with aVkImageViewMinLodCreateInfoEXT
::minLod
of0.0
- If
descriptorType
isDESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM
, theimageView
member of each element ofpImageInfo
must have been created with a view created with animage
created withIMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
- If
descriptorType
isDESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM
, theimageView
member of each element ofpImageInfo
must have been created with a view created with animage
created withIMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkWriteDescriptorSetAccelerationStructureKHR
,VkWriteDescriptorSetAccelerationStructureNV
, orVkWriteDescriptorSetInlineUniformBlock
- The
sType
value of each struct in thepNext
chain must be unique descriptorType
must be a validVkDescriptorType
valuedescriptorCount
must be greater than 0- Both of
dstSet
, and the elements ofpTexelBufferView
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkDescriptorBufferInfo
, VkDescriptorImageInfo
, CmdPushDescriptorSetKHR
, UpdateDescriptorSets
Layout
struct VkWriteDescriptorSet {
VkStructureType sType()
;
void const * pNext()
;
VkDescriptorSet dstSet()
;
uint32_t dstBinding()
;
uint32_t dstArrayElement()
;
uint32_t descriptorCount()
;
VkDescriptorType descriptorType()
;
VkDescriptorImageInfo
const * pImageInfo()
;
VkDescriptorBufferInfo
const * pBufferInfo()
;
VkBufferView const * pTexelBufferView()
;
}
-
Nested Class Summary
Nested classes/interfaces inherited from class org.lwjgl.system.Struct
Struct.StructValidation
Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer
Pointer.Default
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The struct alignment in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct size in bytes.static final int
The struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
-
Constructor Summary
ConstructorDescriptionVkWriteDescriptorSet
(ByteBuffer container) Creates aVkWriteDescriptorSet
instance at the current position of the specifiedByteBuffer
container. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkWriteDescriptorSet
calloc()
Returns a newVkWriteDescriptorSet
instance allocated withmemCalloc
.static VkWriteDescriptorSet.Buffer
calloc
(int capacity) Returns a newVkWriteDescriptorSet.Buffer
instance allocated withmemCalloc
.static VkWriteDescriptorSet.Buffer
calloc
(int capacity, MemoryStack stack) Returns a newVkWriteDescriptorSet.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkWriteDescriptorSet
calloc
(MemoryStack stack) Returns a newVkWriteDescriptorSet
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkWriteDescriptorSet
Deprecated.static VkWriteDescriptorSet.Buffer
callocStack
(int capacity) Deprecated.static VkWriteDescriptorSet.Buffer
callocStack
(int capacity, MemoryStack stack) Deprecated.static VkWriteDescriptorSet
callocStack
(MemoryStack stack) Deprecated.static VkWriteDescriptorSet
create()
Returns a newVkWriteDescriptorSet
instance allocated withBufferUtils
.static VkWriteDescriptorSet.Buffer
create
(int capacity) Returns a newVkWriteDescriptorSet.Buffer
instance allocated withBufferUtils
.static VkWriteDescriptorSet
create
(long address) Returns a newVkWriteDescriptorSet
instance for the specified memory address.static VkWriteDescriptorSet.Buffer
create
(long address, int capacity) Create aVkWriteDescriptorSet.Buffer
instance at the specified memory.static VkWriteDescriptorSet
createSafe
(long address) static VkWriteDescriptorSet.Buffer
createSafe
(long address, int capacity) int
the number of descriptors to update.descriptorCount
(int value) Sets the specified value to thedescriptorCount()
field.int
aVkDescriptorType
specifying the type of each descriptor inpImageInfo
,pBufferInfo
, orpTexelBufferView
, as described below.descriptorType
(int value) Sets the specified value to thedescriptorType()
field.int
the starting element in that array.dstArrayElement
(int value) Sets the specified value to thedstArrayElement()
field.int
the descriptor binding within that set.dstBinding
(int value) Sets the specified value to thedstBinding()
field.long
dstSet()
the destination descriptor set to update.dstSet
(long value) Sets the specified value to thedstSet()
field.static VkWriteDescriptorSet
malloc()
Returns a newVkWriteDescriptorSet
instance allocated withmemAlloc
.static VkWriteDescriptorSet.Buffer
malloc
(int capacity) Returns a newVkWriteDescriptorSet.Buffer
instance allocated withmemAlloc
.static VkWriteDescriptorSet.Buffer
malloc
(int capacity, MemoryStack stack) Returns a newVkWriteDescriptorSet.Buffer
instance allocated on the specifiedMemoryStack
.static VkWriteDescriptorSet
malloc
(MemoryStack stack) Returns a newVkWriteDescriptorSet
instance allocated on the specifiedMemoryStack
.static VkWriteDescriptorSet
Deprecated.static VkWriteDescriptorSet.Buffer
mallocStack
(int capacity) Deprecated.static VkWriteDescriptorSet.Buffer
mallocStack
(int capacity, MemoryStack stack) Deprecated.static VkWriteDescriptorSet
mallocStack
(MemoryStack stack) Deprecated.static int
ndescriptorCount
(long struct) Unsafe version ofdescriptorCount()
.static void
ndescriptorCount
(long struct, int value) Sets the specified value to thedescriptorCount
field of the specifiedstruct
.static int
ndescriptorType
(long struct) Unsafe version ofdescriptorType()
.static void
ndescriptorType
(long struct, int value) Unsafe version ofdescriptorType
.static int
ndstArrayElement
(long struct) Unsafe version ofdstArrayElement()
.static void
ndstArrayElement
(long struct, int value) Unsafe version ofdstArrayElement
.static int
ndstBinding
(long struct) Unsafe version ofdstBinding()
.static void
ndstBinding
(long struct, int value) Unsafe version ofdstBinding
.static long
ndstSet
(long struct) Unsafe version ofdstSet()
.static void
ndstSet
(long struct, long value) Unsafe version ofdstSet
.npBufferInfo
(long struct) Unsafe version ofpBufferInfo()
.static void
npBufferInfo
(long struct, VkDescriptorBufferInfo.Buffer value) Unsafe version ofpBufferInfo
.static VkDescriptorImageInfo.Buffer
npImageInfo
(long struct) Unsafe version ofpImageInfo()
.static void
npImageInfo
(long struct, VkDescriptorImageInfo.Buffer value) Unsafe version ofpImageInfo
.static long
npNext
(long struct) Unsafe version ofpNext()
.static void
npNext
(long struct, long value) Unsafe version ofpNext
.static LongBuffer
npTexelBufferView
(long struct) Unsafe version ofpTexelBufferView
.static void
npTexelBufferView
(long struct, LongBuffer value) Unsafe version ofpTexelBufferView
.static int
nsType
(long struct) Unsafe version ofsType()
.static void
nsType
(long struct, int value) Unsafe version ofsType
.a pointer to an array ofVkDescriptorBufferInfo
structures or is ignored, as described below.Sets the address of the specifiedVkDescriptorBufferInfo.Buffer
to thepBufferInfo()
field.a pointer to an array ofVkDescriptorImageInfo
structures or is ignored, as described below.Sets the address of the specifiedVkDescriptorImageInfo.Buffer
to thepImageInfo()
field.long
pNext()
NULL
or a pointer to a structure extending this structure.pNext
(long value) Sets the specified value to thepNext()
field.Prepends the specifiedVkWriteDescriptorSetAccelerationStructureKHR
value to thepNext
chain.Prepends the specifiedVkWriteDescriptorSetAccelerationStructureNV
value to thepNext
chain.Prepends the specifiedVkWriteDescriptorSetInlineUniformBlock
value to thepNext
chain.Prepends the specifiedVkWriteDescriptorSetInlineUniformBlockEXT
value to thepNext
chain.a pointer to an array ofVkBufferView
handles as described in the Buffer Views section or is ignored, as described below.pTexelBufferView
(LongBuffer value) Sets the address of the specifiedLongBuffer
to thepTexelBufferView()
field.set
(int sType, long pNext, long dstSet, int dstBinding, int dstArrayElement, int descriptorCount, int descriptorType, VkDescriptorImageInfo.Buffer pImageInfo, VkDescriptorBufferInfo.Buffer pBufferInfo, LongBuffer pTexelBufferView) Initializes this struct with the specified values.set
(VkWriteDescriptorSet src) Copies the specified struct data to this struct.int
sizeof()
Returnssizeof(struct)
.int
sType()
aVkStructureType
value identifying this structure.sType
(int value) Sets the specified value to thesType()
field.Sets theSTRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
value to thesType()
field.Methods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toString
Methods 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. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
DSTSET
public static final int DSTSETThe struct member offsets. -
DSTBINDING
public static final int DSTBINDINGThe struct member offsets. -
DSTARRAYELEMENT
public static final int DSTARRAYELEMENTThe struct member offsets. -
DESCRIPTORCOUNT
public static final int DESCRIPTORCOUNTThe struct member offsets. -
DESCRIPTORTYPE
public static final int DESCRIPTORTYPEThe struct member offsets. -
PIMAGEINFO
public static final int PIMAGEINFOThe struct member offsets. -
PBUFFERINFO
public static final int PBUFFERINFOThe struct member offsets. -
PTEXELBUFFERVIEW
public static final int PTEXELBUFFERVIEWThe struct member offsets.
-
-
Constructor Details
-
VkWriteDescriptorSet
Creates aVkWriteDescriptorSet
instance at the current position of the specifiedByteBuffer
container. 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()Description copied from class:Struct
Returnssizeof(struct)
.- Specified by:
sizeof
in classStruct<VkWriteDescriptorSet>
-
sType
public int sType()aVkStructureType
value identifying this structure. -
pNext
public long pNext()NULL
or a pointer to a structure extending this structure. -
dstSet
public long dstSet()the destination descriptor set to update. -
dstBinding
public int dstBinding()the descriptor binding within that set. -
dstArrayElement
public int dstArrayElement()the starting element in that array. If the descriptor binding identified bydstSet
anddstBinding
has a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
thendstArrayElement
specifies the starting byte offset within the binding. -
descriptorCount
public int descriptorCount()the number of descriptors to update. If the descriptor binding identified bydstSet
anddstBinding
has a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
, thendescriptorCount
specifies the number of bytes to update. Otherwise,descriptorCount
is one of- the number of elements in
pImageInfo
- the number of elements in
pBufferInfo
- the number of elements in
pTexelBufferView
- a value matching the
dataSize
member of aVkWriteDescriptorSetInlineUniformBlock
structure in thepNext
chain - a value matching the
accelerationStructureCount
of aVkWriteDescriptorSetAccelerationStructureKHR
structure in thepNext
chain
- the number of elements in
-
descriptorType
public int descriptorType()aVkDescriptorType
specifying the type of each descriptor inpImageInfo
,pBufferInfo
, orpTexelBufferView
, as described below. IfVkDescriptorSetLayoutBinding
fordstSet
atdstBinding
is not equal toDESCRIPTOR_TYPE_MUTABLE_EXT
,descriptorType
must be the same type as thedescriptorType
specified inVkDescriptorSetLayoutBinding
fordstSet
atdstBinding
. The type of the descriptor also controls which array the descriptors are taken from. -
pImageInfo
a pointer to an array ofVkDescriptorImageInfo
structures or is ignored, as described below. -
pBufferInfo
a pointer to an array ofVkDescriptorBufferInfo
structures or is ignored, as described below. -
pTexelBufferView
a pointer to an array ofVkBufferView
handles as described in the Buffer Views section or is ignored, as described below. -
sType
Sets the specified value to thesType()
field. -
sType$Default
Sets theSTRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
value to thesType()
field. -
pNext
Sets the specified value to thepNext()
field. -
pNext
Prepends the specifiedVkWriteDescriptorSetAccelerationStructureKHR
value to thepNext
chain. -
pNext
Prepends the specifiedVkWriteDescriptorSetAccelerationStructureNV
value to thepNext
chain. -
pNext
Prepends the specifiedVkWriteDescriptorSetInlineUniformBlock
value to thepNext
chain. -
pNext
Prepends the specifiedVkWriteDescriptorSetInlineUniformBlockEXT
value to thepNext
chain. -
dstSet
Sets the specified value to thedstSet()
field. -
dstBinding
Sets the specified value to thedstBinding()
field. -
dstArrayElement
Sets the specified value to thedstArrayElement()
field. -
descriptorCount
Sets the specified value to thedescriptorCount()
field. -
descriptorType
Sets the specified value to thedescriptorType()
field. -
pImageInfo
Sets the address of the specifiedVkDescriptorImageInfo.Buffer
to thepImageInfo()
field. -
pBufferInfo
Sets the address of the specifiedVkDescriptorBufferInfo.Buffer
to thepBufferInfo()
field. -
pTexelBufferView
Sets the address of the specifiedLongBuffer
to thepTexelBufferView()
field. -
set
public VkWriteDescriptorSet set(int sType, long pNext, long dstSet, int dstBinding, int dstArrayElement, int descriptorCount, int descriptorType, @Nullable VkDescriptorImageInfo.Buffer pImageInfo, @Nullable VkDescriptorBufferInfo.Buffer pBufferInfo, @Nullable LongBuffer pTexelBufferView) 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 newVkWriteDescriptorSet
instance allocated withmemAlloc
. The instance must be explicitly freed. -
calloc
Returns a newVkWriteDescriptorSet
instance allocated withmemCalloc
. The instance must be explicitly freed. -
create
Returns a newVkWriteDescriptorSet
instance allocated withBufferUtils
. -
create
Returns a newVkWriteDescriptorSet
instance for the specified memory address. -
createSafe
-
malloc
Returns a newVkWriteDescriptorSet.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
Returns a newVkWriteDescriptorSet.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
Returns a newVkWriteDescriptorSet.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
Create aVkWriteDescriptorSet.Buffer
instance 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.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
malloc
Returns a newVkWriteDescriptorSet
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
calloc
Returns a newVkWriteDescriptorSet
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
malloc
Returns a newVkWriteDescriptorSet.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
calloc
Returns a newVkWriteDescriptorSet.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType()
. -
npNext
public static long npNext(long struct) Unsafe version ofpNext()
. -
ndstSet
public static long ndstSet(long struct) Unsafe version ofdstSet()
. -
ndstBinding
public static int ndstBinding(long struct) Unsafe version ofdstBinding()
. -
ndstArrayElement
public static int ndstArrayElement(long struct) Unsafe version ofdstArrayElement()
. -
ndescriptorCount
public static int ndescriptorCount(long struct) Unsafe version ofdescriptorCount()
. -
ndescriptorType
public static int ndescriptorType(long struct) Unsafe version ofdescriptorType()
. -
npImageInfo
Unsafe version ofpImageInfo()
. -
npBufferInfo
Unsafe version ofpBufferInfo()
. -
npTexelBufferView
Unsafe version ofpTexelBufferView
. -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType
. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext
. -
ndstSet
public static void ndstSet(long struct, long value) Unsafe version ofdstSet
. -
ndstBinding
public static void ndstBinding(long struct, int value) Unsafe version ofdstBinding
. -
ndstArrayElement
public static void ndstArrayElement(long struct, int value) Unsafe version ofdstArrayElement
. -
ndescriptorCount
public static void ndescriptorCount(long struct, int value) Sets the specified value to thedescriptorCount
field of the specifiedstruct
. -
ndescriptorType
public static void ndescriptorType(long struct, int value) Unsafe version ofdescriptorType
. -
npImageInfo
Unsafe version ofpImageInfo
. -
npBufferInfo
Unsafe version ofpBufferInfo
. -
npTexelBufferView
Unsafe version ofpTexelBufferView
.
-