# Class VulkanPipelineRenderingCreateInfo

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

All Implemented Interfaces:
  `VulkanPipelineRenderingCreateInfoType`

public final class VulkanPipelineRenderingCreateInfo extends Object implements VulkanPipelineRenderingCreateInfoType
Structure specifying parameters of a pipeline for dynamic rendering.

See Also:
  - "VkPipelineRenderingCreateInfo"

- ## Nested Class Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VulkanPipelineRenderingCreateInfo.Builder`
  `builder()`
  Creates a builder for `VulkanPipelineRenderingCreateInfo`.
  `List<VulkanFormat>`
  `colorAttachmentFormats()`
  `static VulkanPipelineRenderingCreateInfo`
  `copyOf(VulkanPipelineRenderingCreateInfoType instance)`
  Creates an immutable copy of a `VulkanPipelineRenderingCreateInfoType` value.
  `Optional<VulkanFormat>`
  `depthAttachmentFormat()`
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanPipelineRenderingCreateInfo` that have equal attribute values.
  `int`
  `hashCode()`
  Computes a hash code from attributes: `colorAttachmentFormats`, `depthAttachmentFormat`, `stencilAttachmentFormat`, `viewMask`.
  `Optional<VulkanFormat>`
  `stencilAttachmentFormat()`
  `String`
  `toString()`
  Prints the immutable value `VulkanPipelineRenderingCreateInfo` with attribute values.
  `long`
  `viewMask()`
  `final VulkanPipelineRenderingCreateInfo`
  `withColorAttachmentFormats(VulkanFormat... elements)`
  Copy the current immutable object with elements that replace the content of `colorAttachmentFormats`.
  `final VulkanPipelineRenderingCreateInfo`
  `withColorAttachmentFormats(Iterable<? extends VulkanFormat> elements)`
  Copy the current immutable object with elements that replace the content of `colorAttachmentFormats`.
  `final VulkanPipelineRenderingCreateInfo`
  `withDepthAttachmentFormat(VulkanFormat value)`
  Copy the current immutable object by setting a present value for the optional `depthAttachmentFormat` attribute.
  `final VulkanPipelineRenderingCreateInfo`
  `withDepthAttachmentFormat(Optional<? extends VulkanFormat> optional)`
  Copy the current immutable object by setting an optional value for the `depthAttachmentFormat` attribute.
  `final VulkanPipelineRenderingCreateInfo`
  `withStencilAttachmentFormat(VulkanFormat value)`
  Copy the current immutable object by setting a present value for the optional `stencilAttachmentFormat` attribute.
  `final VulkanPipelineRenderingCreateInfo`
  `withStencilAttachmentFormat(Optional<? extends VulkanFormat> optional)`
  Copy the current immutable object by setting an optional value for the `stencilAttachmentFormat` attribute.
  `final VulkanPipelineRenderingCreateInfo`
  `withViewMask(long value)`
  Copy the current immutable object by setting a value for the `viewMask` attribute.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### colorAttachmentFormats

    public List<VulkanFormat> colorAttachmentFormats()
    Specified by:
      `colorAttachmentFormats` in interface `VulkanPipelineRenderingCreateInfoType`
    Returns:
      The formats of the color attachments

  - ### depthAttachmentFormat

    public Optional<VulkanFormat> depthAttachmentFormat()
    Specified by:
      `depthAttachmentFormat` in interface `VulkanPipelineRenderingCreateInfoType`
    Returns:
      The format of the depth attachment

  - ### stencilAttachmentFormat

    public Optional<VulkanFormat> stencilAttachmentFormat()
    Specified by:
      `stencilAttachmentFormat` in interface `VulkanPipelineRenderingCreateInfoType`
    Returns:
      The format of the stencil attachment

  - ### viewMask

    public long viewMask()
    Specified by:
      `viewMask` in interface `VulkanPipelineRenderingCreateInfoType`
    Returns:
      A bitfield of view indices describing which views are active during rendering. It must match VkRenderingInfo::viewMask when rendering.

  - ### withColorAttachmentFormats

    public final VulkanPipelineRenderingCreateInfo withColorAttachmentFormats(VulkanFormat... elements)
    Copy the current immutable object with elements that replace the content of `colorAttachmentFormats`.
    Parameters:
      `elements` - The elements to set
    Returns:
      A modified copy of `this` object

  - ### withColorAttachmentFormats

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

  - ### withDepthAttachmentFormat

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

  - ### withDepthAttachmentFormat

    public final VulkanPipelineRenderingCreateInfo withDepthAttachmentFormat(Optional<? extends VulkanFormat> optional)
    Copy the current immutable object by setting an optional value for the `depthAttachmentFormat` attribute. An equality check is used on inner value to prevent copying of the same value by returning `this`.
    Parameters:
      `optional` - An optional value for depthAttachmentFormat
    Returns:
      A modified copy or `this` if not changed

  - ### withStencilAttachmentFormat

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

  - ### withStencilAttachmentFormat

    public final VulkanPipelineRenderingCreateInfo withStencilAttachmentFormat(Optional<? extends VulkanFormat> optional)
    Copy the current immutable object by setting an optional value for the `stencilAttachmentFormat` attribute. An equality check is used on inner value to prevent copying of the same value by returning `this`.
    Parameters:
      `optional` - An optional value for stencilAttachmentFormat
    Returns:
      A modified copy or `this` if not changed

  - ### withViewMask

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

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanPipelineRenderingCreateInfo` 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: `colorAttachmentFormats`, `depthAttachmentFormat`, `stencilAttachmentFormat`, `viewMask`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

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

  - ### copyOf

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

  - ### builder

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

        VulkanPipelineRenderingCreateInfo.builder()
           .addColorAttachmentFormats|addAllColorAttachmentFormats(com.io7m.jcoronado.api.VulkanFormat) // colorAttachmentFormats elements
           .setDepthAttachmentFormat(Optional<com.io7m.jcoronado.api.VulkanFormat>) // optional depthAttachmentFormat
           .setStencilAttachmentFormat(Optional<com.io7m.jcoronado.api.VulkanFormat>) // optional stencilAttachmentFormat
           .setViewMask(long) // optional viewMask
           .build();

    Returns:
      A new VulkanPipelineRenderingCreateInfo builder