# Enum Class VulkanBufferUsageFlag

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

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

public enum VulkanBufferUsageFlag extends Enum<VulkanBufferUsageFlag> implements VulkanEnumBitmaskType

See Also:
  - "VkBufferUsageFlagBits"

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class Enum

  `Enum.EnumDesc<E>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT`
  VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT specifies that the buffer is suitable for passing as the buffer parameter to vkCmdBeginConditionalRenderingEXT.
  `VK_BUFFER_USAGE_INDEX_BUFFER_BIT`
  Specifies that the buffer is suitable for passing as the buffer parameter to vkCmdBindIndexBuffer.
  `VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT`
  Specifies that the buffer is suitable for passing as the buffer parameter to vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, or vkCmdDispatchIndirect.
  `VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT`
  VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT specifies that the buffer can be used to retrieve a buffer device address via vkGetBufferDeviceAddress and use that address to access the buffer’s memory from a shader.
  `VK_BUFFER_USAGE_STORAGE_BUFFER_BIT`
  Specifies that the buffer can be used in a VkDescriptorBufferInfo suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.
  `VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT`
  Specifies that the buffer can be used to create a VkBufferView suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
  `VK_BUFFER_USAGE_TRANSFER_DST_BIT`
  Specifies that the buffer can be used as the destination of a transfer command.
  `VK_BUFFER_USAGE_TRANSFER_SRC_BIT`
  Specifies that the buffer can be used as the source of a transfer command (see the definition of VK_PIPELINE_STAGE_TRANSFER_BIT).
  `VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT`
  Specifies that the buffer can be used in a VkDescriptorBufferInfo suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.
  `VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT`
  Specifies that the buffer can be used to create a VkBufferView suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
  `VK_BUFFER_USAGE_VERTEX_BUFFER_BIT`
  Specifies that the buffer is suitable for passing as an element of the pBuffers array to vkCmdBindVertexBuffers.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `value()`
  `static VulkanBufferUsageFlag`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static VulkanBufferUsageFlag[]`
  `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_BUFFER_USAGE_TRANSFER_SRC_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_TRANSFER_SRC_BIT
    Specifies that the buffer can be used as the source of a transfer command (see the definition of VK_PIPELINE_STAGE_TRANSFER_BIT).

  - ### VK_BUFFER_USAGE_TRANSFER_DST_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_TRANSFER_DST_BIT
    Specifies that the buffer can be used as the destination of a transfer command.

  - ### VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
    Specifies that the buffer can be used to create a VkBufferView suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.

  - ### VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
    Specifies that the buffer can be used to create a VkBufferView suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.

  - ### VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
    Specifies that the buffer can be used in a VkDescriptorBufferInfo suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.

  - ### VK_BUFFER_USAGE_STORAGE_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
    Specifies that the buffer can be used in a VkDescriptorBufferInfo suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.

  - ### VK_BUFFER_USAGE_INDEX_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_INDEX_BUFFER_BIT
    Specifies that the buffer is suitable for passing as the buffer parameter to vkCmdBindIndexBuffer.

  - ### VK_BUFFER_USAGE_VERTEX_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
    Specifies that the buffer is suitable for passing as an element of the pBuffers array to vkCmdBindVertexBuffers.

  - ### VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
    Specifies that the buffer is suitable for passing as the buffer parameter to vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, or vkCmdDispatchIndirect. It is also suitable for passing as the buffer member of VkIndirectCommandsTokenNVX, or sequencesCountBuffer or sequencesIndexBuffer member of VkCmdProcessCommandsInfoNVX

  - ### VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
    VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT specifies that the buffer is suitable for passing as the buffer parameter to vkCmdBeginConditionalRenderingEXT.

  - ### VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT

    public static final VulkanBufferUsageFlag VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT specifies that the buffer can be used to retrieve a buffer device address via vkGetBufferDeviceAddress and use that address to access the buffer’s memory from a shader.

- ## Method Details

  - ### values

    public static VulkanBufferUsageFlag[] 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 VulkanBufferUsageFlag 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