public class VkImageCreateInfo
extends org.lwjgl.system.Struct
implements org.lwjgl.system.NativeResource
Images created with tiling equal to IMAGE_TILING_LINEAR have further restrictions on their limits and capabilities compared to images created with tiling equal to IMAGE_TILING_OPTIMAL. Creation of images with tiling IMAGE_TILING_LINEAR may not be supported unless other parameters meet all of the constraints:
imageType is IMAGE_TYPE_2Dformat is not a depth/stencil formatmipLevels is 1arrayLayers is 1samples is SAMPLE_COUNT_1_BITusage only includes IMAGE_USAGE_TRANSFER_SRC_BIT and/or IMAGE_USAGE_TRANSFER_DST_BITImages created with a format from one of those listed in Formats requiring sampler Y'CBCR conversion for IMAGE_ASPECT_COLOR_BIT image views have further restrictions on their limits and capabilities compared to images created with other formats. Creation of images with a format requiring Y'CBCR conversion may not be supported unless other parameters meet all of the constraints:
imageType is IMAGE_TYPE_2DmipLevels is 1arrayLayers is 1samples is SAMPLE_COUNT_1_BITImplementations may support additional limits and capabilities beyond those listed above.
To determine the set of valid usage bits for a given format, call GetPhysicalDeviceFormatProperties.
If the size of the resultant image would exceed maxResourceSize, then vkCreateImage must fail and return ERROR_OUT_OF_DEVICE_MEMORY. This failure may occur even when all image creation parameters satisfy their valid usage requirements.
For images created without IMAGE_CREATE_EXTENDED_USAGE_BIT a usage bit is valid if it is supported for the format the image is created with.
For images created with IMAGE_CREATE_EXTENDED_USAGE_BIT a usage bit is valid if it is supported for at least one of the formats a VkImageView created from the image can have (see Image Views for more detail).
Valid values for some image creation parameters are limited by a numerical upper bound or by inclusion in a bitset. For example, VkImageCreateInfo::arrayLayers is limited by imageCreateMaxArrayLayers, defined below; and VkImageCreateInfo::samples is limited by imageCreateSampleCounts, also defined below.
Several limiting values are defined below, as well as assisting values from which the limiting values are derived. The limiting values are referenced by the relevant valid usage statements of VkImageCreateInfo.
uint64_t imageCreateDrmFormatModifiers[] be the set of Linux DRM format modifiers that the resultant image may have.
tiling is not IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then imageCreateDrmFormatModifiers is empty.VkImageCreateInfo::pNext contains VkImageDrmFormatModifierExplicitCreateInfoEXT, then imageCreateDrmFormatModifiers contains exactly one modifier, VkImageDrmFormatModifierExplicitCreateInfoEXT::drmFormatModifier.VkImageCreateInfo::pNext contains VkImageDrmFormatModifierListCreateInfoEXT, then imageCreateDrmFormatModifiers contains the exactly the modifiers in VkImageDrmFormatModifierListCreateInfoEXT::pDrmFormatModifiers.VkBool32 imageCreateMaybeLinear indicate if the resultant image may be linear.
tiling is IMAGE_TILING_LINEAR, then imageCreateMaybeLinear is true.tiling is IMAGE_TILING_OPTIMAL, then imageCreateMaybeLinear is false.tiling is IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then imageCreateMaybeLinear_ is true if and only if imageCreateDrmFormatModifiers contains DRM_FORMAT_MOD_LINEAR.VkFormatFeatureFlags imageCreateFormatFeatures be the set of format features available during image creation.
tiling is IMAGE_TILING_LINEAR, then imageCreateFormatFeatures is the value of VkImageFormatProperties::linearTilingFeatures found by calling GetPhysicalDeviceFormatProperties with parameter format equal to VkImageCreateInfo::format.tiling is IMAGE_TILING_OPTIMAL, then imageCreateFormatFeatures is value of VkImageFormatProperties::optimalTilingFeatures found by calling GetPhysicalDeviceFormatProperties with parameter format equal to VkImageCreateInfo::format.tiling is IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the value of imageCreateFormatFeatures is found by calling GetPhysicalDeviceFormatProperties2 with VkImageFormatProperties::format equal to VkImageCreateInfo::format and with VkDrmFormatModifierPropertiesListEXT chained into VkImageFormatProperties2; by collecting all members of the returned array VkDrmFormatModifierPropertiesListEXT::pDrmFormatModifierProperties whose drmFormatModifier belongs to imageCreateDrmFormatModifiers; and by taking the bitwise intersection, over the collected array members, of drmFormatModifierTilingFeatures. (The resultant imageCreateFormatFeatures may be empty).VkImageFormatProperties2 imageCreateImageFormatPropertiesList[] be the list of structures obtained by calling GetPhysicalDeviceImageFormatProperties2, possibly multiple times, as follows:
VkPhysicalDeviceImageFormatInfo2::format, imageType, tiling, usage, and flags must be equal to those in VkImageCreateInfo.VkImageCreateInfo::pNext contains a VkExternalMemoryImageCreateInfo structure whose handleTypes is not 0, then VkPhysicalDeviceImageFormatInfo2::pNext must contain a VkPhysicalDeviceExternalImageFormatInfo structure whose handleType is not 0; and GetPhysicalDeviceImageFormatProperties2 must be called for each handle type in VkExternalMemoryImageCreateInfo::handleTypes, successively setting VkPhysicalDeviceExternalImageFormatInfo::handleType on each call.VkImageCreateInfo::pNext contains no VkExternalMemoryImageCreateInfo structure, or contains a structure whose handleTypes is 0, then VkPhysicalDeviceImageFormatInfo2::pNext must either contain no VkPhysicalDeviceExternalImageFormatInfo structure, or contain a structure whose handleType is 0.tiling is IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then VkPhysicalDeviceImageFormatInfo2::pNext must contain a VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure where sharingMode is equal to VkImageCreateInfo::sharingMode; and, if sharingMode is SHARING_MODE_CONCURRENT, then queueFamilyIndexCount and pQueueFamilyIndices must be equal to those in VkImageCreateInfo; and, if flags contains IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the VkImageFormatListCreateInfoKHR structure included in the pNext chain of VkPhysicalDeviceImageFormatInfo2 must be equivalent to the one included in the pNext chain of VkImageCreateInfo; and GetPhysicalDeviceImageFormatProperties2 must be called for each modifier in imageCreateDrmFormatModifiers, successively setting VkPhysicalDeviceImageDrmFormatModifierInfoEXT::drmFormatModifier on each call.tiling is not IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then VkPhysicalDeviceImageFormatInfo2::pNext must contain no VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure.GetPhysicalDeviceImageFormatProperties2 returns an error, then imageCreateImageFormatPropertiesList is defined to be the empty list.uint32_t imageCreateMaxMipLevels be the minimum value of VkImageFormatProperties::maxMipLevels in imageCreateImageFormatPropertiesList. The value is undefined if imageCreateImageFormatPropertiesList is empty.uint32_t imageCreateMaxArrayLayers be the minimum value of VkImageFormatProperties::maxArrayLayers in imageCreateImageFormatPropertiesList. The value is undefined if imageCreateImageFormatPropertiesList is empty.VkExtent3D imageCreateMaxExtent be the component-wise minimum over all VkImageFormatProperties::maxExtent values in imageCreateImageFormatPropertiesList. The value is undefined if imageCreateImageFormatPropertiesList is empty.VkSampleCountFlags imageCreateSampleCounts be the intersection of each VkImageFormatProperties::sampleCounts in imageCreateImageFormatPropertiesList. The value is undefined if imageCreateImageFormatPropertiesList is empty.imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts.sharingMode is SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t valuessharingMode is SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1sharingMode is SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either GetPhysicalDeviceQueueFamilyProperties or GetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create deviceformat must not be FORMAT_UNDEFINEDextent.width must be greater than 0.extent.height must be greater than 0.extent.depth must be greater than 0.mipLevels must be greater than 0arrayLayers must be greater than 0flags contains IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be IMAGE_TYPE_2Dflags contains IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be IMAGE_TYPE_2Dflags contains IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be IMAGE_TYPE_3Dextent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits).extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits).extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits).imageType is IMAGE_TYPE_2D and flags contains IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6imageType is IMAGE_TYPE_1D, both extent.height and extent.depth must be 1imageType is IMAGE_TYPE_2D, extent.depth must be 1mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth.mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits).arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits).imageType is IMAGE_TYPE_3D, arrayLayers must be 1.samples is not SAMPLE_COUNT_1_BIT, then imageType must be IMAGE_TYPE_2D, flags must not contain IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false,samples is not SAMPLE_COUNT_1_BIT, usage must not contain IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXTusage includes IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than IMAGE_USAGE_COLOR_ATTACHMENT_BIT, IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be setusage includes IMAGE_USAGE_COLOR_ATTACHMENT_BIT, IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidthusage includes IMAGE_USAGE_COLOR_ATTACHMENT_BIT, IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeightusage includes IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to ceil(maxFramebufferWidth / minFragmentDensityTexelSize.width)usage includes IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to ceil(maxFramebufferHeight / minFragmentDensityTexelSize.height)usage includes IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of IMAGE_USAGE_COLOR_ATTACHMENT_BIT, IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or IMAGE_USAGE_INPUT_ATTACHMENT_BIT.samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits).usage contains IMAGE_USAGE_STORAGE_BIT, samples must be SAMPLE_COUNT_1_BITflags must not contain IMAGE_CREATE_SPARSE_BINDING_BITflags must not contain IMAGE_CREATE_SPARSE_ALIASED_BITimageType is IMAGE_TYPE_1D, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_2D, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_3D, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_2D, and samples is SAMPLE_COUNT_2_BIT, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_2D, and samples is SAMPLE_COUNT_4_BIT, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_2D, and samples is SAMPLE_COUNT_8_BIT, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITimageType is IMAGE_TYPE_2D, and samples is SAMPLE_COUNT_16_BIT, flags must not contain IMAGE_CREATE_SPARSE_RESIDENCY_BITflags contains IMAGE_CREATE_SPARSE_RESIDENCY_BIT or IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain IMAGE_CREATE_SPARSE_BINDING_BITIMAGE_CREATE_SPARSE_BINDING_BIT, IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or IMAGE_CREATE_SPARSE_ALIASED_BIT are set, IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be setflags must not contain IMAGE_CREATE_PROTECTED_BIT.IMAGE_CREATE_SPARSE_BINDING_BIT, IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or IMAGE_CREATE_SPARSE_ALIASED_BIT are set, IMAGE_CREATE_PROTECTED_BIT must not also be set.pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure.pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by GetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypespNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by GetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypesVkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BITflags contains IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false.flags contains IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a block-compressed image format, an ETC compressed image format, or an ASTC compressed image format.flags contains IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain IMAGE_CREATE_MUTABLE_FORMAT_BIT.initialLayout must be IMAGE_LAYOUT_UNDEFINED or IMAGE_LAYOUT_PREINITIALIZED.pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be IMAGE_LAYOUT_UNDEFINEDformat is one of those listed in Formats requiring sampler Y'CBCR conversion for IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1format is one of those listed in Formats requiring sampler Y'CBCR conversion for IMAGE_ASPECT_COLOR_BIT image views, samples must be SAMPLE_COUNT_1_BITformat is one of those listed in Formats requiring sampler Y'CBCR conversion for IMAGE_ASPECT_COLOR_BIT image views, imageType must be IMAGE_TYPE_2Dformat is one of those listed in Formats requiring sampler Y'CBCR conversion for IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain IMAGE_CREATE_DISJOINT_BITformat is not a multi-planar format, and flags does not include IMAGE_CREATE_ALIAS_BIT, flags must not contain IMAGE_CREATE_DISJOINT_BITtiling is IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structurespNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be IMAGE_TILING_DRM_FORMAT_MODIFIER_EXTtiling is IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include an VkImageFormatListCreateInfoKHR structure with non-zero viewFormatCountflags contains IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil formatformat is a depth-stencil format, usage includes IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure, then its VkImageStencilUsageCreateInfoEXT::stencilUsage member must also include IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITformat is a depth-stencil format, usage does not include IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure, then its VkImageStencilUsageCreateInfoEXT::stencilUsage member must also not include IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITformat is a depth-stencil format, usage includes IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure, then its VkImageStencilUsageCreateInfoEXT::stencilUsage member must also include IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITformat is a depth-stencil format, usage does not include IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure, then its VkImageStencilUsageCreateInfoEXT::stencilUsage member must also not include IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITFormat is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure with its stencilUsage member including IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidthformat is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure with its stencilUsage member including IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeightformat is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfoEXT structure with its stencilUsage including IMAGE_USAGE_STORAGE_BIT, samples must be SAMPLE_COUNT_1_BITflags contains IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be IMAGE_TYPE_2D or IMAGE_TYPE_3Dflags contains IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil formatflags contains IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1flags contains IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1usage includes IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, imageType must be IMAGE_TYPE_2D.usage includes IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, samples must be SAMPLE_COUNT_1_BIT.usage includes IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be IMAGE_TILING_OPTIMAL.flags contains IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be IMAGE_TILING_OPTIMALflags contains IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be IMAGE_TYPE_2Dflags contains IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain IMAGE_CREATE_CUBE_COMPATIBLE_BITflags contains IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1sType must be STRUCTURE_TYPE_IMAGE_CREATE_INFOpNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfoKHR, VkImageStencilUsageCreateInfoEXT, or VkImageSwapchainCreateInfoKHRsType member in the pNext chain must be uniqueflags must be a valid combination of VkImageCreateFlagBits valuesimageType must be a valid VkImageType valueformat must be a valid VkFormat valuesamples must be a valid VkSampleCountFlagBits valuetiling must be a valid VkImageTiling valueusage must be a valid combination of VkImageUsageFlagBits valuesusage must not be 0sharingMode must be a valid VkSharingMode valueinitialLayout must be a valid VkImageLayout valuesType – the type of this structure.pNext – NULL or a pointer to an extension-specific structure.flags – a bitmask of VkImageCreateFlagBits describing additional parameters of the image.imageType – a VkImageType value specifying the basic dimensionality of the image. Layers in array textures do not count as a dimension for the purposes of the image type.format – a VkFormat describing the format and type of the texel blocks that will be contained in the image.extent – a VkExtent3D describing the number of data elements in each dimension of the base level.mipLevels – describes the number of levels of detail available for minified sampling of the image.arrayLayers – the number of layers in the image.samples – a VkSampleCountFlagBits specifying the number of samples per texel.tiling – a VkImageTiling value specifying the tiling arrangement of the texel blocks in memory.usage – a bitmask of VkImageUsageFlagBits describing the intended usage of the image.sharingMode – a VkSharingMode value specifying the sharing mode of the image when it will be accessed by multiple queue families.queueFamilyIndexCount – the number of entries in the pQueueFamilyIndices array.pQueueFamilyIndices – a list of queue families that will access this image (ignored if sharingMode is not SHARING_MODE_CONCURRENT).initialLayout – a VkImageLayout value specifying the initial VkImageLayout of all image subresources of the image. See Image Layouts.
struct VkImageCreateInfo {
VkStructureType sType;
void const * pNext;
VkImageCreateFlags flags;
VkImageType imageType;
VkFormat format;
VkExtent3D extent;
uint32_t mipLevels;
uint32_t arrayLayers;
VkSampleCountFlagBits samples;
VkImageTiling tiling;
VkImageUsageFlags usage;
VkSharingMode sharingMode;
uint32_t queueFamilyIndexCount;
uint32_t const * pQueueFamilyIndices;
VkImageLayout initialLayout;
}| Modifier and Type | Class and Description |
|---|---|
static class |
VkImageCreateInfo.Buffer
An array of
VkImageCreateInfo structs. |
| Modifier and Type | Field and Description |
|---|---|
static int |
ALIGNOF
The struct alignment in bytes.
|
static int |
ARRAYLAYERS
The struct member offsets.
|
static int |
EXTENT
The struct member offsets.
|
static int |
FLAGS
The struct member offsets.
|
static int |
FORMAT
The struct member offsets.
|
static int |
IMAGETYPE
The struct member offsets.
|
static int |
INITIALLAYOUT
The struct member offsets.
|
static int |
MIPLEVELS
The struct member offsets.
|
static int |
PNEXT
The struct member offsets.
|
static int |
PQUEUEFAMILYINDICES
The struct member offsets.
|
static int |
QUEUEFAMILYINDEXCOUNT
The struct member offsets.
|
static int |
SAMPLES
The struct member offsets.
|
static int |
SHARINGMODE
The struct member offsets.
|
static int |
SIZEOF
The struct size in bytes.
|
static int |
STYPE
The struct member offsets.
|
static int |
TILING
The struct member offsets.
|
static int |
USAGE
The struct member offsets.
|
| Constructor and Description |
|---|
VkImageCreateInfo(java.nio.ByteBuffer container)
Creates a
VkImageCreateInfo instance at the current position of the specified ByteBuffer container. |
| Modifier and Type | Method and Description |
|---|---|
int |
arrayLayers()
Returns the value of the
arrayLayers field. |
VkImageCreateInfo |
arrayLayers(int value)
Sets the specified value to the
arrayLayers field. |
static VkImageCreateInfo |
calloc()
Returns a new
VkImageCreateInfo instance allocated with memCalloc. |
static VkImageCreateInfo.Buffer |
calloc(int capacity)
Returns a new
VkImageCreateInfo.Buffer instance allocated with memCalloc. |
static VkImageCreateInfo |
callocStack()
Returns a new
VkImageCreateInfo instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkImageCreateInfo.Buffer |
callocStack(int capacity)
Returns a new
VkImageCreateInfo.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkImageCreateInfo.Buffer |
callocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkImageCreateInfo.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkImageCreateInfo |
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkImageCreateInfo instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkImageCreateInfo |
create()
Returns a new
VkImageCreateInfo instance allocated with BufferUtils. |
static VkImageCreateInfo.Buffer |
create(int capacity)
Returns a new
VkImageCreateInfo.Buffer instance allocated with BufferUtils. |
static VkImageCreateInfo |
create(long address)
Returns a new
VkImageCreateInfo instance for the specified memory address. |
static VkImageCreateInfo.Buffer |
create(long address,
int capacity)
Create a
VkImageCreateInfo.Buffer instance at the specified memory. |
static VkImageCreateInfo |
createSafe(long address)
|
static VkImageCreateInfo.Buffer |
createSafe(long address,
int capacity)
|
VkExtent3D |
extent()
Returns a
VkExtent3D view of the extent field. |
VkImageCreateInfo |
extent(java.util.function.Consumer<VkExtent3D> consumer)
Passes the
extent field to the specified Consumer. |
VkImageCreateInfo |
extent(VkExtent3D value)
Copies the specified
VkExtent3D to the extent field. |
int |
flags()
Returns the value of the
flags field. |
VkImageCreateInfo |
flags(int value)
Sets the specified value to the
flags field. |
int |
format()
Returns the value of the
format field. |
VkImageCreateInfo |
format(int value)
Sets the specified value to the
format field. |
int |
imageType()
Returns the value of the
imageType field. |
VkImageCreateInfo |
imageType(int value)
Sets the specified value to the
imageType field. |
int |
initialLayout()
Returns the value of the
initialLayout field. |
VkImageCreateInfo |
initialLayout(int value)
Sets the specified value to the
initialLayout field. |
static VkImageCreateInfo |
malloc()
Returns a new
VkImageCreateInfo instance allocated with memAlloc. |
static VkImageCreateInfo.Buffer |
malloc(int capacity)
Returns a new
VkImageCreateInfo.Buffer instance allocated with memAlloc. |
static VkImageCreateInfo |
mallocStack()
Returns a new
VkImageCreateInfo instance allocated on the thread-local MemoryStack. |
static VkImageCreateInfo.Buffer |
mallocStack(int capacity)
Returns a new
VkImageCreateInfo.Buffer instance allocated on the thread-local MemoryStack. |
static VkImageCreateInfo.Buffer |
mallocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkImageCreateInfo.Buffer instance allocated on the specified MemoryStack. |
static VkImageCreateInfo |
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkImageCreateInfo instance allocated on the specified MemoryStack. |
int |
mipLevels()
Returns the value of the
mipLevels field. |
VkImageCreateInfo |
mipLevels(int value)
Sets the specified value to the
mipLevels field. |
static int |
narrayLayers(long struct)
Unsafe version of
arrayLayers(). |
static void |
narrayLayers(long struct,
int value)
Unsafe version of
arrayLayers. |
static VkExtent3D |
nextent(long struct)
Unsafe version of
extent(). |
static void |
nextent(long struct,
VkExtent3D value)
Unsafe version of
extent. |
static int |
nflags(long struct)
Unsafe version of
flags(). |
static void |
nflags(long struct,
int value)
Unsafe version of
flags. |
static int |
nformat(long struct)
Unsafe version of
format(). |
static void |
nformat(long struct,
int value)
Unsafe version of
format. |
static int |
nimageType(long struct)
Unsafe version of
imageType(). |
static void |
nimageType(long struct,
int value)
Unsafe version of
imageType. |
static int |
ninitialLayout(long struct)
Unsafe version of
initialLayout(). |
static void |
ninitialLayout(long struct,
int value)
Unsafe version of
initialLayout. |
static int |
nmipLevels(long struct)
Unsafe version of
mipLevels(). |
static void |
nmipLevels(long struct,
int value)
Unsafe version of
mipLevels. |
static long |
npNext(long struct)
Unsafe version of
pNext(). |
static void |
npNext(long struct,
long value)
Unsafe version of
pNext. |
static java.nio.IntBuffer |
npQueueFamilyIndices(long struct)
Unsafe version of
pQueueFamilyIndices. |
static void |
npQueueFamilyIndices(long struct,
java.nio.IntBuffer value)
Unsafe version of
pQueueFamilyIndices. |
static int |
nqueueFamilyIndexCount(long struct)
Unsafe version of
queueFamilyIndexCount(). |
static void |
nqueueFamilyIndexCount(long struct,
int value)
Sets the specified value to the
queueFamilyIndexCount field of the specified struct. |
static int |
nsamples(long struct)
Unsafe version of
samples(). |
static void |
nsamples(long struct,
int value)
Unsafe version of
samples. |
static int |
nsharingMode(long struct)
Unsafe version of
sharingMode(). |
static void |
nsharingMode(long struct,
int value)
Unsafe version of
sharingMode. |
static int |
nsType(long struct)
Unsafe version of
sType(). |
static void |
nsType(long struct,
int value)
Unsafe version of
sType. |
static int |
ntiling(long struct)
Unsafe version of
tiling(). |
static void |
ntiling(long struct,
int value)
Unsafe version of
tiling. |
static int |
nusage(long struct)
Unsafe version of
usage(). |
static void |
nusage(long struct,
int value)
Unsafe version of
usage. |
long |
pNext()
Returns the value of the
pNext field. |
VkImageCreateInfo |
pNext(long value)
Sets the specified value to the
pNext field. |
java.nio.IntBuffer |
pQueueFamilyIndices()
Returns a
IntBuffer view of the data pointed to by the pQueueFamilyIndices field. |
VkImageCreateInfo |
pQueueFamilyIndices(java.nio.IntBuffer value)
Sets the address of the specified
IntBuffer to the pQueueFamilyIndices field. |
int |
queueFamilyIndexCount()
Returns the value of the
queueFamilyIndexCount field. |
int |
samples()
Returns the value of the
samples field. |
VkImageCreateInfo |
samples(int value)
Sets the specified value to the
samples field. |
VkImageCreateInfo |
set(int sType,
long pNext,
int flags,
int imageType,
int format,
VkExtent3D extent,
int mipLevels,
int arrayLayers,
int samples,
int tiling,
int usage,
int sharingMode,
java.nio.IntBuffer pQueueFamilyIndices,
int initialLayout)
Initializes this struct with the specified values.
|
VkImageCreateInfo |
set(VkImageCreateInfo src)
Copies the specified struct data to this struct.
|
int |
sharingMode()
Returns the value of the
sharingMode field. |
VkImageCreateInfo |
sharingMode(int value)
Sets the specified value to the
sharingMode field. |
int |
sizeof() |
int |
sType()
Returns the value of the
sType field. |
VkImageCreateInfo |
sType(int value)
Sets the specified value to the
sType field. |
int |
tiling()
Returns the value of the
tiling field. |
VkImageCreateInfo |
tiling(int value)
Sets the specified value to the
tiling field. |
int |
usage()
Returns the value of the
usage field. |
VkImageCreateInfo |
usage(int value)
Sets the specified value to the
usage field. |
static void |
validate(long struct)
Validates pointer members that should not be
NULL. |
static void |
validate(long array,
int count)
Calls
validate(long) for each struct contained in the specified struct array. |
public static final int SIZEOF
public static final int ALIGNOF
public static final int STYPE
public static final int PNEXT
public static final int FLAGS
public static final int IMAGETYPE
public static final int FORMAT
public static final int EXTENT
public static final int MIPLEVELS
public static final int ARRAYLAYERS
public static final int SAMPLES
public static final int TILING
public static final int USAGE
public static final int SHARINGMODE
public static final int QUEUEFAMILYINDEXCOUNT
public static final int PQUEUEFAMILYINDICES
public static final int INITIALLAYOUT
public VkImageCreateInfo(java.nio.ByteBuffer container)
VkImageCreateInfo instance at the current position of the specified ByteBuffer 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.
public int sizeof()
sizeof in class org.lwjgl.system.Structpublic int sType()
sType field.public long pNext()
pNext field.public int flags()
flags field.public int imageType()
imageType field.public int format()
format field.public VkExtent3D extent()
VkExtent3D view of the extent field.public int mipLevels()
mipLevels field.public int arrayLayers()
arrayLayers field.public int samples()
samples field.public int tiling()
tiling field.public int usage()
usage field.public int sharingMode()
sharingMode field.public int queueFamilyIndexCount()
queueFamilyIndexCount field.@Nullable public java.nio.IntBuffer pQueueFamilyIndices()
IntBuffer view of the data pointed to by the pQueueFamilyIndices field.public int initialLayout()
initialLayout field.public VkImageCreateInfo sType(int value)
sType field.public VkImageCreateInfo pNext(long value)
pNext field.public VkImageCreateInfo flags(int value)
flags field.public VkImageCreateInfo imageType(int value)
imageType field.public VkImageCreateInfo format(int value)
format field.public VkImageCreateInfo extent(VkExtent3D value)
VkExtent3D to the extent field.public VkImageCreateInfo extent(java.util.function.Consumer<VkExtent3D> consumer)
extent field to the specified Consumer.public VkImageCreateInfo mipLevels(int value)
mipLevels field.public VkImageCreateInfo arrayLayers(int value)
arrayLayers field.public VkImageCreateInfo samples(int value)
samples field.public VkImageCreateInfo tiling(int value)
tiling field.public VkImageCreateInfo usage(int value)
usage field.public VkImageCreateInfo sharingMode(int value)
sharingMode field.public VkImageCreateInfo pQueueFamilyIndices(@Nullable java.nio.IntBuffer value)
IntBuffer to the pQueueFamilyIndices field.public VkImageCreateInfo initialLayout(int value)
initialLayout field.public VkImageCreateInfo set(int sType, long pNext, int flags, int imageType, int format, VkExtent3D extent, int mipLevels, int arrayLayers, int samples, int tiling, int usage, int sharingMode, @Nullable java.nio.IntBuffer pQueueFamilyIndices, int initialLayout)
public VkImageCreateInfo set(VkImageCreateInfo src)
src - the source structpublic static VkImageCreateInfo malloc()
VkImageCreateInfo instance allocated with memAlloc. The instance must be explicitly freed.public static VkImageCreateInfo calloc()
VkImageCreateInfo instance allocated with memCalloc. The instance must be explicitly freed.public static VkImageCreateInfo create()
VkImageCreateInfo instance allocated with BufferUtils.public static VkImageCreateInfo create(long address)
VkImageCreateInfo instance for the specified memory address.@Nullable public static VkImageCreateInfo createSafe(long address)
public static VkImageCreateInfo.Buffer malloc(int capacity)
VkImageCreateInfo.Buffer instance allocated with memAlloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkImageCreateInfo.Buffer calloc(int capacity)
VkImageCreateInfo.Buffer instance allocated with memCalloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkImageCreateInfo.Buffer create(int capacity)
VkImageCreateInfo.Buffer instance allocated with BufferUtils.capacity - the buffer capacitypublic static VkImageCreateInfo.Buffer create(long address, int capacity)
VkImageCreateInfo.Buffer instance at the specified memory.address - the memory addresscapacity - the buffer capacity@Nullable public static VkImageCreateInfo.Buffer createSafe(long address, int capacity)
public static VkImageCreateInfo mallocStack()
VkImageCreateInfo instance allocated on the thread-local MemoryStack.public static VkImageCreateInfo callocStack()
VkImageCreateInfo instance allocated on the thread-local MemoryStack and initializes all its bits to zero.public static VkImageCreateInfo mallocStack(org.lwjgl.system.MemoryStack stack)
VkImageCreateInfo instance allocated on the specified MemoryStack.stack - the stack from which to allocatepublic static VkImageCreateInfo callocStack(org.lwjgl.system.MemoryStack stack)
VkImageCreateInfo instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatepublic static VkImageCreateInfo.Buffer mallocStack(int capacity)
VkImageCreateInfo.Buffer instance allocated on the thread-local MemoryStack.capacity - the buffer capacitypublic static VkImageCreateInfo.Buffer callocStack(int capacity)
VkImageCreateInfo.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.capacity - the buffer capacitypublic static VkImageCreateInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkImageCreateInfo.Buffer instance allocated on the specified MemoryStack.stack - the stack from which to allocatecapacity - the buffer capacitypublic static VkImageCreateInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkImageCreateInfo.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatecapacity - the buffer capacitypublic static int nsType(long struct)
sType().public static long npNext(long struct)
pNext().public static int nflags(long struct)
flags().public static int nimageType(long struct)
imageType().public static int nformat(long struct)
format().public static VkExtent3D nextent(long struct)
extent().public static int nmipLevels(long struct)
mipLevels().public static int narrayLayers(long struct)
arrayLayers().public static int nsamples(long struct)
samples().public static int ntiling(long struct)
tiling().public static int nusage(long struct)
usage().public static int nsharingMode(long struct)
sharingMode().public static int nqueueFamilyIndexCount(long struct)
queueFamilyIndexCount().@Nullable public static java.nio.IntBuffer npQueueFamilyIndices(long struct)
pQueueFamilyIndices.public static int ninitialLayout(long struct)
initialLayout().public static void nsType(long struct,
int value)
sType.public static void npNext(long struct,
long value)
pNext.public static void nflags(long struct,
int value)
flags.public static void nimageType(long struct,
int value)
imageType.public static void nformat(long struct,
int value)
format.public static void nextent(long struct,
VkExtent3D value)
extent.public static void nmipLevels(long struct,
int value)
mipLevels.public static void narrayLayers(long struct,
int value)
arrayLayers.public static void nsamples(long struct,
int value)
samples.public static void ntiling(long struct,
int value)
tiling.public static void nusage(long struct,
int value)
usage.public static void nsharingMode(long struct,
int value)
sharingMode.public static void nqueueFamilyIndexCount(long struct,
int value)
queueFamilyIndexCount field of the specified struct.public static void npQueueFamilyIndices(long struct,
@Nullable
java.nio.IntBuffer value)
pQueueFamilyIndices.public static void ninitialLayout(long struct,
int value)
initialLayout.public static void validate(long struct)
NULL.struct - the struct to validatepublic static void validate(long array,
int count)
validate(long) for each struct contained in the specified struct array.array - the struct array to validatecount - the number of structs in arrayCopyright LWJGL. All Rights Reserved. License terms.