# Enum Class VulkanImageCreateFlag

java.lang.Object
java.lang.Enum<VulkanImageCreateFlag>
com.io7m.jcoronado.api.VulkanImageCreateFlag

All Implemented Interfaces:
  `VulkanEnumBitmaskType, Serializable, Comparable<VulkanImageCreateFlag>, Constable`

public enum VulkanImageCreateFlag extends Enum<VulkanImageCreateFlag> implements VulkanEnumBitmaskType
Flags specified when creating images.

See Also:
  - "VkImageCreateFlagBits"

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class Enum

  `Enum.EnumDesc<E>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT`
  Specifies that the image can be used to create a VkImageView of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY.
  `VK_IMAGE_CREATE_ALIAS_BIT`
  Specifies that two images created with the same creation parameters and aliased to the same memory can interpret the contents of the memory consistently with each other, subject to the rules described in the Memory Aliasing section.
  `VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT`
  Specifies that the image having a compressed format can be used to create a VkImageView with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.
  `VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV`
  Specifies that the image is a corner-sampled image.
  `VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT`
  Specifies that the image can be used to create a VkImageView of type VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY.
  `VK_IMAGE_CREATE_DISJOINT_BIT`
  Specifies that an image with a multi-planar format must have each plane separately bound to memory, rather than having a single memory binding for the whole image; the presence of this bit distinguishes a disjoint image from an image without this bit set.
  `VK_IMAGE_CREATE_EXTENDED_USAGE_BIT`
  Specifies that the image can be created with usage flags that are not supported for the format the image is created with but are supported for at least one format a VkImageView created from the image can have.
  `VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT`
  Specifies that the image can be used to create a VkImageView with a different format from the image.
  `VK_IMAGE_CREATE_PROTECTED_BIT`
  Specifies that the image is a protected image.
  `VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT`
  Specifies that an image with a depth or depth/stencil format can be used with custom sample locations when used as a depth/stencil attachment.
  `VK_IMAGE_CREATE_SPARSE_ALIASED_BIT`
  Specifies that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image).
  `VK_IMAGE_CREATE_SPARSE_BINDING_BIT`
  Specifies that the image will be backed using sparse memory binding.
  `VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT`
  Specifies that the image can be partially backed using sparse memory binding.
  `VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT`
  Specifies that the image can be used with a non-zero value of the splitInstanceBindRegionCount member of a VkBindImageMemoryDeviceGroupInfo structure passed into vkBindImageMemory2.
  `VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT`
  Specifies that an image can be in a subsampled format which may be more optimal when written as an attachment by a render pass that has a fragment density map attachment.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `value()`
  `static VulkanImageCreateFlag`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static VulkanImageCreateFlag[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods inherited from class Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods inherited from class Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### VK_IMAGE_CREATE_SPARSE_BINDING_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SPARSE_BINDING_BIT
    Specifies that the image will be backed using sparse memory binding.

  - ### VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
    Specifies that the image can be partially backed using sparse memory binding. Images created with this flag must also be created with the VK_IMAGE_CREATE_SPARSE_BINDING_BIT flag.

  - ### VK_IMAGE_CREATE_SPARSE_ALIASED_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
    Specifies that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image). Images created with this flag must also be created with the VK_IMAGE_CREATE_SPARSE_BINDING_BIT flag.

  - ### VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
    Specifies that the image can be used to create a VkImageView with a different format from the image. For multi-planar formats, VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT specifies that a VkImageView can be created of a plane of the image.

  - ### VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
    Specifies that the image can be used to create a VkImageView of type VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY.

  - ### VK_IMAGE_CREATE_ALIAS_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_ALIAS_BIT
    Specifies that two images created with the same creation parameters and aliased to the same memory can interpret the contents of the memory consistently with each other, subject to the rules described in the Memory Aliasing section. This flag further specifies that each plane of a disjoint image can share an in-memory non-linear representation with single-plane images, and that a single-plane image can share an in-memory non-linear representation with a plane of a multi-planar disjoint image.

  - ### VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
    Specifies that the image can be used with a non-zero value of the splitInstanceBindRegionCount member of a VkBindImageMemoryDeviceGroupInfo structure passed into vkBindImageMemory2. This flag also has the effect of making the image use the standard sparse image block dimensions.

  - ### VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
    Specifies that the image can be used to create a VkImageView of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY.

  - ### VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
    Specifies that the image having a compressed format can be used to create a VkImageView with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.

  - ### VK_IMAGE_CREATE_EXTENDED_USAGE_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
    Specifies that the image can be created with usage flags that are not supported for the format the image is created with but are supported for at least one format a VkImageView created from the image can have.

  - ### VK_IMAGE_CREATE_PROTECTED_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_PROTECTED_BIT
    Specifies that the image is a protected image.

  - ### VK_IMAGE_CREATE_DISJOINT_BIT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_DISJOINT_BIT
    Specifies that an image with a multi-planar format must have each plane separately bound to memory, rather than having a single memory binding for the whole image; the presence of this bit distinguishes a disjoint image from an image without this bit set.

  - ### VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
    Specifies that the image is a corner-sampled image.

  - ### VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
    Specifies that an image with a depth or depth/stencil format can be used with custom sample locations when used as a depth/stencil attachment.

  - ### VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT

    public static final VulkanImageCreateFlag VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
    Specifies that an image can be in a subsampled format which may be more optimal when written as an attachment by a render pass that has a fragment density map attachment.

- ## Method Details

  - ### values

    public static VulkanImageCreateFlag[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static VulkanImageCreateFlag valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### value

    public int value()
    Specified by:
      `value` in interface `VulkanEnumBitmaskType`
    Returns:
      The integer value of the constant