# Enum Class VulkanPresentModeKHR

java.lang.Object
java.lang.Enum<VulkanPresentModeKHR>
com.io7m.jcoronado.extensions.khr_swapchain.api.VulkanPresentModeKHR

All Implemented Interfaces:
  `VulkanEnumIntegerType`, `Serializable`, `Comparable<VulkanPresentModeKHR>`, `Constable`

public enum VulkanPresentModeKHR extends Enum<VulkanPresentModeKHR> implements VulkanEnumIntegerType

See Also:
  - "VkPresentModeKHR"

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `VK_PRESENT_MODE_FIFO_KHR`
  The presentation engine waits for the next vertical blanking period to update the current image.
  `VK_PRESENT_MODE_FIFO_RELAXED_KHR`
  The presentation engine generally waits for the next vertical blanking period to update the current image.
  `VK_PRESENT_MODE_IMMEDIATE_KHR`
  The presentation engine does not wait for a vertical blanking period to update the current image, meaning this mode may result in visible tearing.
  `VK_PRESENT_MODE_MAILBOX_KHR`
  The presentation engine waits for the next vertical blanking period to update the current image.

- ## Method Summary

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

  ### Methods inherited from class java.lang.Enum

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

  ### Methods inherited from class java.lang.Object

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

- ## Enum Constant Details

  - ### VK_PRESENT_MODE_IMMEDIATE_KHR

    public static final VulkanPresentModeKHR VK_PRESENT_MODE_IMMEDIATE_KHR
    The presentation engine does not wait for a vertical blanking period to update the current image, meaning this mode may result in visible tearing. No internal queuing of presentation requests is needed, as the requests are applied immediately.

  - ### VK_PRESENT_MODE_MAILBOX_KHR

    public static final VulkanPresentModeKHR VK_PRESENT_MODE_MAILBOX_KHR
    The presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal single-entry queue is used to hold pending presentation requests. If the queue is full when a new presentation request is received, the new request replaces the existing entry, and any images associated with the prior entry become available for re-use by the application. One request is removed from the queue and processed during each vertical blanking period in which the queue is non-empty.

  - ### VK_PRESENT_MODE_FIFO_KHR

    public static final VulkanPresentModeKHR VK_PRESENT_MODE_FIFO_KHR
    The presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during each vertical blanking period in which the queue is non-empty. This is the only value of presentMode that is required to be supported.

  - ### VK_PRESENT_MODE_FIFO_RELAXED_KHR

    public static final VulkanPresentModeKHR VK_PRESENT_MODE_FIFO_RELAXED_KHR
    The presentation engine generally waits for the next vertical blanking period to update the current image. If a vertical blanking period has already passed since the last update of the current image then the presentation engine does not wait for another vertical blanking period for the update, meaning this mode may result in visible tearing in this case. This mode is useful for reducing visual stutter with an application that will mostly present a new image before the next vertical blanking period, but may occassionally be late, and present a new image just after the the next vertical blanking period. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during or after each vertical blanking period in which the queue is non-empty.

- ## Method Details

  - ### values

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

  - ### ofInteger

    public static Optional<VulkanPresentModeKHR> ofInteger(int x)
    Parameters:
      `x` - An integer value
    Returns:
      The constant associated with the given integer value, if any

  - ### value

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