# Class VulkanPhysicalDeviceFeatures

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures

All Implemented Interfaces:
  `VulkanPhysicalDeviceFeaturesType`

public final class VulkanPhysicalDeviceFeatures extends Object implements VulkanPhysicalDeviceFeaturesType
The features supported by a physical device.

See Also:
  - "VkPhysicalDeviceFeatures"

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `VulkanPhysicalDeviceFeatures.Builder`
  Builds instances of type `VulkanPhysicalDeviceFeatures`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VulkanPhysicalDeviceFeatures.Builder`
  `builder()`
  Creates a builder for `VulkanPhysicalDeviceFeatures`.
  `static VulkanPhysicalDeviceFeatures`
  `copyOf(VulkanPhysicalDeviceFeaturesType instance)`
  Creates an immutable copy of a `VulkanPhysicalDeviceFeaturesType` value.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanPhysicalDeviceFeatures` that have equal attribute values.
  `VulkanPhysicalDeviceFeatures10`
  `features10()`
  `VulkanPhysicalDeviceFeatures11`
  `features11()`
  `VulkanPhysicalDeviceFeatures12`
  `features12()`
  `VulkanPhysicalDeviceFeatures13`
  `features13()`
  `VulkanPhysicalDeviceFeatures14`
  `features14()`
  `int`
  `hashCode()`
  Computes a hash code from attributes: `features10`, `features11`, `features12`, `features13`, `features14`.
  `String`
  `toString()`
  Prints the immutable value `VulkanPhysicalDeviceFeatures` with attribute values.
  `final VulkanPhysicalDeviceFeatures`
  `withFeatures10(VulkanPhysicalDeviceFeatures10 value)`
  Copy the current immutable object by setting a value for the `features10` attribute.
  `final VulkanPhysicalDeviceFeatures`
  `withFeatures11(VulkanPhysicalDeviceFeatures11 value)`
  Copy the current immutable object by setting a value for the `features11` attribute.
  `final VulkanPhysicalDeviceFeatures`
  `withFeatures12(VulkanPhysicalDeviceFeatures12 value)`
  Copy the current immutable object by setting a value for the `features12` attribute.
  `final VulkanPhysicalDeviceFeatures`
  `withFeatures13(VulkanPhysicalDeviceFeatures13 value)`
  Copy the current immutable object by setting a value for the `features13` attribute.
  `final VulkanPhysicalDeviceFeatures`
  `withFeatures14(VulkanPhysicalDeviceFeatures14 value)`
  Copy the current immutable object by setting a value for the `features14` attribute.

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### features10

    public VulkanPhysicalDeviceFeatures10 features10()
    Specified by:
      `features10` in interface `VulkanPhysicalDeviceFeaturesType`
    Returns:
      The features supported by a physical Vulkan 1.0 device.
    See Also:
      - "VkPhysicalDeviceVulkan11Features"

  - ### features11

    public VulkanPhysicalDeviceFeatures11 features11()
    Specified by:
      `features11` in interface `VulkanPhysicalDeviceFeaturesType`
    Returns:
      The features supported by a physical Vulkan 1.1 device.
    See Also:
      - "VkPhysicalDeviceVulkan11Features"

  - ### features12

    public VulkanPhysicalDeviceFeatures12 features12()
    Specified by:
      `features12` in interface `VulkanPhysicalDeviceFeaturesType`
    Returns:
      The features supported by a physical Vulkan 1.2 device.
    See Also:
      - "VkPhysicalDeviceVulkan12Features"

  - ### features13

    public VulkanPhysicalDeviceFeatures13 features13()
    Specified by:
      `features13` in interface `VulkanPhysicalDeviceFeaturesType`
    Returns:
      The features supported by a physical Vulkan 1.3 device.
    See Also:
      - "VkPhysicalDeviceVulkan13Features"

  - ### features14

    public VulkanPhysicalDeviceFeatures14 features14()
    Specified by:
      `features14` in interface `VulkanPhysicalDeviceFeaturesType`
    Returns:
      The features supported by a physical Vulkan 1.4 device.
    See Also:
      - "VkPhysicalDeviceVulkan14Features"

  - ### withFeatures10

    public final VulkanPhysicalDeviceFeatures withFeatures10(VulkanPhysicalDeviceFeatures10 value)
    Copy the current immutable object by setting a value for the `features10` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for features10
    Returns:
      A modified copy or the `this` object

  - ### withFeatures11

    public final VulkanPhysicalDeviceFeatures withFeatures11(VulkanPhysicalDeviceFeatures11 value)
    Copy the current immutable object by setting a value for the `features11` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for features11
    Returns:
      A modified copy or the `this` object

  - ### withFeatures12

    public final VulkanPhysicalDeviceFeatures withFeatures12(VulkanPhysicalDeviceFeatures12 value)
    Copy the current immutable object by setting a value for the `features12` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for features12
    Returns:
      A modified copy or the `this` object

  - ### withFeatures13

    public final VulkanPhysicalDeviceFeatures withFeatures13(VulkanPhysicalDeviceFeatures13 value)
    Copy the current immutable object by setting a value for the `features13` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for features13
    Returns:
      A modified copy or the `this` object

  - ### withFeatures14

    public final VulkanPhysicalDeviceFeatures withFeatures14(VulkanPhysicalDeviceFeatures14 value)
    Copy the current immutable object by setting a value for the `features14` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for features14
    Returns:
      A modified copy or the `this` object

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanPhysicalDeviceFeatures` that have equal attribute values.
    Overrides:
      `equals` in class `Object`
    Returns:
      `true` if `this` is equal to `another` instance

  - ### hashCode

    public int hashCode()
    Computes a hash code from attributes: `features10`, `features11`, `features12`, `features13`, `features14`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

    public String toString()
    Prints the immutable value `VulkanPhysicalDeviceFeatures` with attribute values.
    Overrides:
      `toString` in class `Object`
    Returns:
      A string representation of the value

  - ### copyOf

    public static VulkanPhysicalDeviceFeatures copyOf(VulkanPhysicalDeviceFeaturesType instance)
    Creates an immutable copy of a `VulkanPhysicalDeviceFeaturesType` value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
    Parameters:
      `instance` - The instance to copy
    Returns:
      A copied immutable VulkanPhysicalDeviceFeatures instance

  - ### builder

    public static VulkanPhysicalDeviceFeatures.Builder builder()
    Creates a builder for `VulkanPhysicalDeviceFeatures`.

        VulkanPhysicalDeviceFeatures.builder()
           .setFeatures10(com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures10) // optional features10
           .setFeatures11(com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures11) // optional features11
           .setFeatures12(com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures12) // optional features12
           .setFeatures13(com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures13) // optional features13
           .setFeatures14(com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures14) // optional features14
           .build();

    Returns:
      A new VulkanPhysicalDeviceFeatures builder