Class VkSparseImageOpaqueMemoryBindInfo
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
Note
This structure is normally used to bind memory to fully-resident sparse images or for mip tail regions of partially resident images. However, it can also be used to bind memory for the entire binding range of partially resident images.
If the pBinds[i].flags of an element i of pBinds does not contain SPARSE_MEMORY_BIND_METADATA_BIT, the resourceOffset is in the range [0, , This range includes data from all aspects of the image, including metadata. For most implementations this will probably mean that the VkMemoryRequirements::size)resourceOffset is a simple device address offset within the resource. It is possible for an application to bind a range of memory that includes both resource data and metadata. However, the application would not know what part of the image the memory is used for, or if any range is being used for metadata.
If the pBinds[i].flags of an element i of pBinds contains SPARSE_MEMORY_BIND_METADATA_BIT, the binding range specified must be within the mip tail region of the metadata aspect. In this case the resourceOffset is not required to be a simple device address offset within the resource. However, it is defined to be within [imageMipTailOffset, imageMipTailOffset + imageMipTailSize) for the metadata aspect. See VkSparseMemoryBind for the full constraints on binding region with this flag present.
Valid Usage
- If the
flagsmember of any element ofpBindscontainsSPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect ofimage
Valid Usage (Implicit)
imagemust be a validVkImagehandlepBindsmust be a valid pointer to an array ofbindCountvalidVkSparseMemoryBindstructuresbindCountmust be greater than 0
See Also
VkBindSparseInfo, VkSparseMemoryBind
Layout
struct VkSparseImageOpaqueMemoryBindInfo {
VkImage image();
uint32_t bindCount();
VkSparseMemoryBind const * pBinds();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkSparseImageOpaqueMemoryBindInfostructs.Nested 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.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkSparseImageOpaqueMemoryBindInfo(ByteBuffer container) Creates aVkSparseImageOpaqueMemoryBindInfoinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionintthe number ofVkSparseMemoryBindstructures in thepBindsarray.calloc()Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.Deprecated.callocStack(int capacity) Deprecated.callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.create()Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated withBufferUtils.create(int capacity) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkSparseImageOpaqueMemoryBindInfoinstance for the specified memory address.create(long address, int capacity) Create aVkSparseImageOpaqueMemoryBindInfo.Bufferinstance at the specified memory.static @Nullable VkSparseImageOpaqueMemoryBindInfocreateSafe(long address) static @Nullable VkSparseImageOpaqueMemoryBindInfo.BuffercreateSafe(long address, int capacity) longimage()theVkImageobject to be bound.image(long value) Sets the specified value to theimage()field.malloc()Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated on the specifiedMemoryStack.Deprecated.mallocStack(int capacity) Deprecated.mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static intnbindCount(long struct) Unsafe version ofbindCount().static voidnbindCount(long struct, int value) Sets the specified value to thebindCountfield of the specifiedstruct.static longnimage(long struct) Unsafe version ofimage().static voidnimage(long struct, long value) Unsafe version ofimage.static VkSparseMemoryBind.BuffernpBinds(long struct) Unsafe version ofpBinds().static voidnpBinds(long struct, VkSparseMemoryBind.Buffer value) Unsafe version ofpBinds.pBinds()a pointer to an array ofVkSparseMemoryBindstructures.pBinds(VkSparseMemoryBind.Buffer value) Sets the address of the specifiedVkSparseMemoryBind.Bufferto thepBinds()field.set(long image, VkSparseMemoryBind.Buffer pBinds) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()static voidvalidate(long struct) Validates pointer members that should not beNULL.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. -
IMAGE
public static final int IMAGEThe struct member offsets. -
BINDCOUNT
public static final int BINDCOUNTThe struct member offsets. -
PBINDS
public static final int PBINDSThe struct member offsets.
-
-
Constructor Details
-
VkSparseImageOpaqueMemoryBindInfo
Creates aVkSparseImageOpaqueMemoryBindInfoinstance 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<VkSparseImageOpaqueMemoryBindInfo>
-
image
public long image()theVkImageobject to be bound. -
bindCount
public int bindCount()the number ofVkSparseMemoryBindstructures in thepBindsarray. -
pBinds
a pointer to an array ofVkSparseMemoryBindstructures. -
image
Sets the specified value to theimage()field. -
pBinds
Sets the address of the specifiedVkSparseMemoryBind.Bufferto thepBinds()field. -
set
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 newVkSparseImageOpaqueMemoryBindInfoinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated withBufferUtils. -
create
Returns a newVkSparseImageOpaqueMemoryBindInfoinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkSparseImageOpaqueMemoryBindInfo.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkSparseImageOpaqueMemoryBindInfo.Buffer createSafe(long address, int capacity) -
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 public static VkSparseImageOpaqueMemoryBindInfo mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
@Deprecated public static VkSparseImageOpaqueMemoryBindInfo callocStack(org.lwjgl.system.MemoryStack stack) 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 VkSparseImageOpaqueMemoryBindInfo.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 VkSparseImageOpaqueMemoryBindInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkSparseImageOpaqueMemoryBindInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkSparseImageOpaqueMemoryBindInfo.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkSparseImageOpaqueMemoryBindInfo.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSparseImageOpaqueMemoryBindInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nimage
public static long nimage(long struct) Unsafe version ofimage(). -
nbindCount
public static int nbindCount(long struct) Unsafe version ofbindCount(). -
npBinds
Unsafe version ofpBinds(). -
nimage
public static void nimage(long struct, long value) Unsafe version ofimage. -
nbindCount
public static void nbindCount(long struct, int value) Sets the specified value to thebindCountfield of the specifiedstruct. -
npBinds
Unsafe version ofpBinds. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-