Class VkImageDrmFormatModifierExplicitCreateInfoEXT
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkImageDrmFormatModifierExplicitCreateInfoEXT
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.lwjgl.system.NativeResource
,org.lwjgl.system.Pointer
public class VkImageDrmFormatModifierExplicitCreateInfoEXT extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResource
Specify that an image be created with the provided DRM format modifier and explicit memory layout.Description
The
i
th member ofpPlaneLayouts
describes the layout of the image'si
th memory plane (that is,VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT
). In each element ofpPlaneLayouts
, the implementation must ignoresize
. The implementation calculates the size of each plane, which the application can query withGetImageSubresourceLayout
.When creating an image with
VkImageDrmFormatModifierExplicitCreateInfoEXT
, it is the application's responsibility to satisfy all valid usage requirements. However, the implementation must validate that the providedpPlaneLayouts
, when combined with the provideddrmFormatModifier
and other creation parameters inVkImageCreateInfo
and itspNext
chain, produce a valid image. (This validation is necessarily implementation-dependent and outside the scope of Vulkan, and therefore not described by valid usage requirements). If this validation fails, thenCreateImage
returnsERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT
.Valid Usage
drmFormatModifier
must be compatible with the parameters inVkImageCreateInfo
and itspNext
chain, as determined by queryingVkPhysicalDeviceImageFormatInfo2
extended withVkPhysicalDeviceImageDrmFormatModifierInfoEXT
.drmFormatModifierPlaneCount
must be equal to theVkDrmFormatModifierPropertiesEXT
::drmFormatModifierPlaneCount
associated withVkImageCreateInfo
::format
anddrmFormatModifier
, as found by queryingVkDrmFormatModifierPropertiesListEXT
.- For each element of
pPlaneLayouts
,size
must be 0 - For each element of
pPlaneLayouts
,arrayPitch
must be 0 ifVkImageCreateInfo
::arrayLayers
is 1. - For each element of
pPlaneLayouts
,depthPitch
must be 0 ifVkImageCreateInfo
::extent
::depth
is 1.
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
- If
drmFormatModifierPlaneCount
is not 0,pPlaneLayouts
must be a valid pointer to an array ofdrmFormatModifierPlaneCount
VkSubresourceLayout
structures
See Also
Member documentation
sType
– the type of this structure.pNext
–NULL
or a pointer to an extension-specific structure.drmFormatModifier
– the Linux DRM format modifier with which the image will be created.drmFormatModifierPlaneCount
– the number of memory planes in the image (as reported byVkDrmFormatModifierPropertiesEXT
) as well as the length of thepPlaneLayouts
array.pPlaneLayouts
– an array ofVkSubresourceLayout
structures that describe the image’s memory planes.
Layout
struct VkImageDrmFormatModifierExplicitCreateInfoEXT { VkStructureType sType; void const * pNext; uint64_t drmFormatModifier; uint32_t drmFormatModifierPlaneCount;
VkSubresourceLayout
const * pPlaneLayouts; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
An array ofVkImageDrmFormatModifierExplicitCreateInfoEXT
structs.
-
Field Summary
Fields Modifier and Type Field Description static int
ALIGNOF
The struct alignment in bytes.static int
DRMFORMATMODIFIER
DRMFORMATMODIFIERPLANECOUNT
PNEXT
PPLANELAYOUTSThe struct member offsets.static int
SIZEOF
The struct size in bytes.static int
STYPE
The struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkImageDrmFormatModifierExplicitCreateInfoEXT(java.nio.ByteBuffer container)
Creates aVkImageDrmFormatModifierExplicitCreateInfoEXT
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkImageDrmFormatModifierExplicitCreateInfoEXT
calloc()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withmemCalloc
.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
calloc(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withmemCalloc
.static VkImageDrmFormatModifierExplicitCreateInfoEXT
callocStack()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
callocStack(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkImageDrmFormatModifierExplicitCreateInfoEXT
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkImageDrmFormatModifierExplicitCreateInfoEXT
create()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withBufferUtils
.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
create(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withBufferUtils
.static VkImageDrmFormatModifierExplicitCreateInfoEXT
create(long address)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance for the specified memory address.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
create(long address, int capacity)
Create aVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance at the specified memory.static VkImageDrmFormatModifierExplicitCreateInfoEXT
createSafe(long address)
static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
createSafe(long address, int capacity)
long
drmFormatModifier()
Returns the value of thedrmFormatModifier
field.VkImageDrmFormatModifierExplicitCreateInfoEXT
drmFormatModifier(long value)
Sets the specified value to thedrmFormatModifier
field.int
drmFormatModifierPlaneCount()
Returns the value of thedrmFormatModifierPlaneCount
field.static VkImageDrmFormatModifierExplicitCreateInfoEXT
malloc()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withmemAlloc
.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
malloc(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withmemAlloc
.static VkImageDrmFormatModifierExplicitCreateInfoEXT
mallocStack()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the thread-localMemoryStack
.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
mallocStack(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the thread-localMemoryStack
.static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the specifiedMemoryStack
.static VkImageDrmFormatModifierExplicitCreateInfoEXT
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the specifiedMemoryStack
.static long
ndrmFormatModifier(long struct)
Unsafe version ofdrmFormatModifier()
.static void
ndrmFormatModifier(long struct, long value)
Unsafe version ofdrmFormatModifier
.static int
ndrmFormatModifierPlaneCount(long struct)
Unsafe version ofdrmFormatModifierPlaneCount()
.static void
ndrmFormatModifierPlaneCount(long struct, int value)
Sets the specified value to thedrmFormatModifierPlaneCount
field of the specifiedstruct
.static long
npNext(long struct)
Unsafe version ofpNext()
.static void
npNext(long struct, long value)
Unsafe version ofpNext
.static VkSubresourceLayout.Buffer
npPlaneLayouts(long struct)
Unsafe version ofpPlaneLayouts()
.static void
npPlaneLayouts(long struct, VkSubresourceLayout.Buffer value)
Unsafe version ofpPlaneLayouts
.static int
nsType(long struct)
Unsafe version ofsType()
.static void
nsType(long struct, int value)
Unsafe version ofsType
.long
pNext()
Returns the value of thepNext
field.VkImageDrmFormatModifierExplicitCreateInfoEXT
pNext(long value)
Sets the specified value to thepNext
field.VkSubresourceLayout.Buffer
pPlaneLayouts()
Returns aVkSubresourceLayout.Buffer
view of the struct array pointed to by thepPlaneLayouts
field.VkImageDrmFormatModifierExplicitCreateInfoEXT
pPlaneLayouts(VkSubresourceLayout.Buffer value)
Sets the address of the specifiedVkSubresourceLayout.Buffer
to thepPlaneLayouts
field.VkImageDrmFormatModifierExplicitCreateInfoEXT
set(int sType, long pNext, long drmFormatModifier, VkSubresourceLayout.Buffer pPlaneLayouts)
Initializes this struct with the specified values.VkImageDrmFormatModifierExplicitCreateInfoEXT
set(VkImageDrmFormatModifierExplicitCreateInfoEXT src)
Copies the specified struct data to this struct.int
sizeof()
int
sType()
Returns the value of thesType
field.VkImageDrmFormatModifierExplicitCreateInfoEXT
sType(int value)
Sets the specified value to thesType
field.static void
validate(long struct)
Validates pointer members that should not beNULL
.static void
validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.
-
-
-
Constructor Detail
-
VkImageDrmFormatModifierExplicitCreateInfoEXT
public VkImageDrmFormatModifierExplicitCreateInfoEXT(java.nio.ByteBuffer container)
Creates aVkImageDrmFormatModifierExplicitCreateInfoEXT
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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeof
in classorg.lwjgl.system.Struct
-
sType
public int sType()
Returns the value of thesType
field.
-
pNext
public long pNext()
Returns the value of thepNext
field.
-
drmFormatModifier
public long drmFormatModifier()
Returns the value of thedrmFormatModifier
field.
-
drmFormatModifierPlaneCount
public int drmFormatModifierPlaneCount()
Returns the value of thedrmFormatModifierPlaneCount
field.
-
pPlaneLayouts
@Nullable public VkSubresourceLayout.Buffer pPlaneLayouts()
Returns aVkSubresourceLayout.Buffer
view of the struct array pointed to by thepPlaneLayouts
field.
-
sType
public VkImageDrmFormatModifierExplicitCreateInfoEXT sType(int value)
Sets the specified value to thesType
field.
-
pNext
public VkImageDrmFormatModifierExplicitCreateInfoEXT pNext(long value)
Sets the specified value to thepNext
field.
-
drmFormatModifier
public VkImageDrmFormatModifierExplicitCreateInfoEXT drmFormatModifier(long value)
Sets the specified value to thedrmFormatModifier
field.
-
pPlaneLayouts
public VkImageDrmFormatModifierExplicitCreateInfoEXT pPlaneLayouts(@Nullable VkSubresourceLayout.Buffer value)
Sets the address of the specifiedVkSubresourceLayout.Buffer
to thepPlaneLayouts
field.
-
set
public VkImageDrmFormatModifierExplicitCreateInfoEXT set(int sType, long pNext, long drmFormatModifier, @Nullable VkSubresourceLayout.Buffer pPlaneLayouts)
Initializes this struct with the specified values.
-
set
public VkImageDrmFormatModifierExplicitCreateInfoEXT set(VkImageDrmFormatModifierExplicitCreateInfoEXT src)
Copies the specified struct data to this struct.- Parameters:
src
- the source struct- Returns:
- this struct
-
malloc
public static VkImageDrmFormatModifierExplicitCreateInfoEXT malloc()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withmemAlloc
. The instance must be explicitly freed.
-
calloc
public static VkImageDrmFormatModifierExplicitCreateInfoEXT calloc()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withmemCalloc
. The instance must be explicitly freed.
-
create
public static VkImageDrmFormatModifierExplicitCreateInfoEXT create()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated withBufferUtils
.
-
create
public static VkImageDrmFormatModifierExplicitCreateInfoEXT create(long address)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance for the specified memory address.
-
createSafe
@Nullable public static VkImageDrmFormatModifierExplicitCreateInfoEXT createSafe(long address)
-
malloc
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer malloc(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer calloc(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer create(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer create(long address, int capacity)
Create aVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT mallocStack()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the thread-localMemoryStack
.
-
callocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT callocStack()
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.
-
mallocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
callocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
mallocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer mallocStack(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the thread-localMemoryStack
.- Parameters:
capacity
- the buffer capacity
-
callocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer callocStack(int capacity)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacity
-
mallocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
callocStack
public static VkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageDrmFormatModifierExplicitCreateInfoEXT.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType()
.
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext()
.
-
ndrmFormatModifier
public static long ndrmFormatModifier(long struct)
Unsafe version ofdrmFormatModifier()
.
-
ndrmFormatModifierPlaneCount
public static int ndrmFormatModifierPlaneCount(long struct)
Unsafe version ofdrmFormatModifierPlaneCount()
.
-
npPlaneLayouts
@Nullable public static VkSubresourceLayout.Buffer npPlaneLayouts(long struct)
Unsafe version ofpPlaneLayouts()
.
-
nsType
public static void nsType(long struct, int value)
Unsafe version ofsType
.
-
npNext
public static void npNext(long struct, long value)
Unsafe version ofpNext
.
-
ndrmFormatModifier
public static void ndrmFormatModifier(long struct, long value)
Unsafe version ofdrmFormatModifier
.
-
ndrmFormatModifierPlaneCount
public static void ndrmFormatModifierPlaneCount(long struct, int value)
Sets the specified value to thedrmFormatModifierPlaneCount
field of the specifiedstruct
.
-
npPlaneLayouts
public static void npPlaneLayouts(long struct, @Nullable VkSubresourceLayout.Buffer value)
Unsafe version ofpPlaneLayouts
.
-
validate
public static void validate(long struct)
Validates pointer members that should not beNULL
.- Parameters:
struct
- the struct to validate
-
validate
public static void validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.- Parameters:
array
- the struct array to validatecount
- the number of structs inarray
-
-