# Class VulkanRenderingAttachmentInfo

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

All Implemented Interfaces:
  `VulkanRenderingAttachmentInfoType`

public final class VulkanRenderingAttachmentInfo extends Object implements VulkanRenderingAttachmentInfoType
Structure specifying rendering attachment info.

See Also:
  - "VkRenderingAttachmentInfo"

- ## Nested Class Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VulkanRenderingAttachmentInfo.Builder`
  `builder()`
  Creates a builder for `VulkanRenderingAttachmentInfo`.
  `VulkanClearValueType`
  `clearValue()`
  `static VulkanRenderingAttachmentInfo`
  `copyOf(VulkanRenderingAttachmentInfoType instance)`
  Creates an immutable copy of a `VulkanRenderingAttachmentInfoType` value.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanRenderingAttachmentInfo` that have equal attribute values.
  `int`
  `hashCode()`
  Computes a hash code from attributes: `imageView`, `imageLayout`, `resolveMode`, `resolveImageView`, `resolveImageLayout`, `loadOp`, `storeOp`, `clearValue`.
  `VulkanImageLayout`
  `imageLayout()`
  `VulkanImageViewType`
  `imageView()`
  `VulkanAttachmentLoadOp`
  `loadOp()`
  `VulkanImageLayout`
  `resolveImageLayout()`
  `Optional<VulkanImageViewType>`
  `resolveImageView()`
  `Set<VulkanResolveModeFlag>`
  `resolveMode()`
  `VulkanAttachmentStoreOp`
  `storeOp()`
  `String`
  `toString()`
  Prints the immutable value `VulkanRenderingAttachmentInfo` with attribute values.
  `final VulkanRenderingAttachmentInfo`
  `withClearValue(VulkanClearValueType value)`
  Copy the current immutable object by setting a value for the `clearValue` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withImageLayout(VulkanImageLayout value)`
  Copy the current immutable object by setting a value for the `imageLayout` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withImageView(VulkanImageViewType value)`
  Copy the current immutable object by setting a value for the `imageView` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withLoadOp(VulkanAttachmentLoadOp value)`
  Copy the current immutable object by setting a value for the `loadOp` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withResolveImageLayout(VulkanImageLayout value)`
  Copy the current immutable object by setting a value for the `resolveImageLayout` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withResolveImageView(VulkanImageViewType value)`
  Copy the current immutable object by setting a present value for the optional `resolveImageView` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withResolveImageView(Optional<? extends VulkanImageViewType> optional)`
  Copy the current immutable object by setting an optional value for the `resolveImageView` attribute.
  `final VulkanRenderingAttachmentInfo`
  `withResolveMode(VulkanResolveModeFlag... elements)`
  Copy the current immutable object with elements that replace the content of `resolveMode`.
  `final VulkanRenderingAttachmentInfo`
  `withResolveMode(Iterable<VulkanResolveModeFlag> elements)`
  Copy the current immutable object with elements that replace the content of `resolveMode`.
  `final VulkanRenderingAttachmentInfo`
  `withStoreOp(VulkanAttachmentStoreOp value)`
  Copy the current immutable object by setting a value for the `storeOp` attribute.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### imageView

    public VulkanImageViewType imageView()
    Specified by:
      `imageView` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The image view

  - ### imageLayout

    public VulkanImageLayout imageLayout()
    Specified by:
      `imageLayout` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The image layout

  - ### resolveMode

    public Set<VulkanResolveModeFlag> resolveMode()
    Specified by:
      `resolveMode` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The resolve mode flags

  - ### resolveImageView

    public Optional<VulkanImageViewType> resolveImageView()
    Specified by:
      `resolveImageView` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The resolved image view

  - ### resolveImageLayout

    public VulkanImageLayout resolveImageLayout()
    Specified by:
      `resolveImageLayout` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The resolved image layout

  - ### loadOp

    public VulkanAttachmentLoadOp loadOp()
    Specified by:
      `loadOp` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The attachment load op

  - ### storeOp

    public VulkanAttachmentStoreOp storeOp()
    Specified by:
      `storeOp` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The attachment store op

  - ### clearValue

    public VulkanClearValueType clearValue()
    Specified by:
      `clearValue` in interface `VulkanRenderingAttachmentInfoType`
    Returns:
      The attachment clear value

  - ### withImageView

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

  - ### withImageLayout

    public final VulkanRenderingAttachmentInfo withImageLayout(VulkanImageLayout value)
    Copy the current immutable object by setting a value for the `imageLayout` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for imageLayout
    Returns:
      A modified copy or the `this` object

  - ### withResolveMode

    public final VulkanRenderingAttachmentInfo withResolveMode(VulkanResolveModeFlag... elements)
    Copy the current immutable object with elements that replace the content of `resolveMode`.
    Parameters:
      `elements` - The elements to set
    Returns:
      A modified copy of `this` object

  - ### withResolveMode

    public final VulkanRenderingAttachmentInfo withResolveMode(Iterable<VulkanResolveModeFlag> elements)
    Copy the current immutable object with elements that replace the content of `resolveMode`. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `elements` - An iterable of resolveMode elements to set
    Returns:
      A modified copy or `this` if not changed

  - ### withResolveImageView

    public final VulkanRenderingAttachmentInfo withResolveImageView(VulkanImageViewType value)
    Copy the current immutable object by setting a present value for the optional `resolveImageView` attribute.
    Parameters:
      `value` - The value for resolveImageView
    Returns:
      A modified copy or `this` if not changed

  - ### withResolveImageView

    public final VulkanRenderingAttachmentInfo withResolveImageView(Optional<? extends VulkanImageViewType> optional)
    Copy the current immutable object by setting an optional value for the `resolveImageView` attribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returning `this`.
    Parameters:
      `optional` - An optional value for resolveImageView
    Returns:
      A modified copy or `this` if not changed

  - ### withResolveImageLayout

    public final VulkanRenderingAttachmentInfo withResolveImageLayout(VulkanImageLayout value)
    Copy the current immutable object by setting a value for the `resolveImageLayout` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for resolveImageLayout
    Returns:
      A modified copy or the `this` object

  - ### withLoadOp

    public final VulkanRenderingAttachmentInfo withLoadOp(VulkanAttachmentLoadOp value)
    Copy the current immutable object by setting a value for the `loadOp` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for loadOp
    Returns:
      A modified copy or the `this` object

  - ### withStoreOp

    public final VulkanRenderingAttachmentInfo withStoreOp(VulkanAttachmentStoreOp value)
    Copy the current immutable object by setting a value for the `storeOp` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for storeOp
    Returns:
      A modified copy or the `this` object

  - ### withClearValue

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

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanRenderingAttachmentInfo` 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: `imageView`, `imageLayout`, `resolveMode`, `resolveImageView`, `resolveImageLayout`, `loadOp`, `storeOp`, `clearValue`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

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

  - ### copyOf

    public static VulkanRenderingAttachmentInfo copyOf(VulkanRenderingAttachmentInfoType instance)
    Creates an immutable copy of a `VulkanRenderingAttachmentInfoType` 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 VulkanRenderingAttachmentInfo instance

  - ### builder

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

        VulkanRenderingAttachmentInfo.builder()
           .setImageView(com.io7m.jcoronado.api.VulkanImageViewType) // required imageView
           .setImageLayout(com.io7m.jcoronado.api.VulkanImageLayout) // required imageLayout
           .addResolveMode|addAllResolveMode(com.io7m.jcoronado.api.VulkanResolveModeFlag) // resolveMode elements
           .setResolveImageView(Optional<com.io7m.jcoronado.api.VulkanImageViewType>) // optional resolveImageView
           .setResolveImageLayout(com.io7m.jcoronado.api.VulkanImageLayout) // optional resolveImageLayout
           .setLoadOp(com.io7m.jcoronado.api.VulkanAttachmentLoadOp) // required loadOp
           .setStoreOp(com.io7m.jcoronado.api.VulkanAttachmentStoreOp) // required storeOp
           .setClearValue(com.io7m.jcoronado.api.VulkanClearValueType) // required clearValue
           .build();

    Returns:
      A new VulkanRenderingAttachmentInfo builder