# Class VulkanRenderPassBeginInfo

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

All Implemented Interfaces:
  `VulkanRenderPassBeginInfoType`

public final class VulkanRenderPassBeginInfo extends Object implements VulkanRenderPassBeginInfoType
Structure specifying how to begin a render pass.

See Also:
  - "VkRenderPassBeginInfo"

- ## Nested Class Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VulkanRenderPassBeginInfo.Builder`
  `builder()`
  Creates a builder for `VulkanRenderPassBeginInfo`.
  `List<VulkanClearValueType>`
  `clearValues()`
  `static VulkanRenderPassBeginInfo`
  `copyOf(VulkanRenderPassBeginInfoType instance)`
  Creates an immutable copy of a `VulkanRenderPassBeginInfoType` value.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanRenderPassBeginInfo` that have equal attribute values.
  `VulkanFramebufferType`
  `framebuffer()`
  `int`
  `hashCode()`
  Computes a hash code from attributes: `renderPass`, `framebuffer`, `renderArea`, `clearValues`.
  `VulkanRectangle2D`
  `renderArea()`
  `VulkanRenderPassType`
  `renderPass()`
  `String`
  `toString()`
  Prints the immutable value `VulkanRenderPassBeginInfo` with attribute values.
  `final VulkanRenderPassBeginInfo`
  `withClearValues(VulkanClearValueType... elements)`
  Copy the current immutable object with elements that replace the content of `clearValues`.
  `final VulkanRenderPassBeginInfo`
  `withClearValues(Iterable<? extends VulkanClearValueType> elements)`
  Copy the current immutable object with elements that replace the content of `clearValues`.
  `final VulkanRenderPassBeginInfo`
  `withFramebuffer(VulkanFramebufferType value)`
  Copy the current immutable object by setting a value for the `framebuffer` attribute.
  `final VulkanRenderPassBeginInfo`
  `withRenderArea(VulkanRectangle2D value)`
  Copy the current immutable object by setting a value for the `renderArea` attribute.
  `final VulkanRenderPassBeginInfo`
  `withRenderPass(VulkanRenderPassType value)`
  Copy the current immutable object by setting a value for the `renderPass` attribute.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### renderPass

    public VulkanRenderPassType renderPass()
    Specified by:
      `renderPass` in interface `VulkanRenderPassBeginInfoType`
    Returns:
      The render pass

  - ### framebuffer

    public VulkanFramebufferType framebuffer()
    Specified by:
      `framebuffer` in interface `VulkanRenderPassBeginInfoType`
    Returns:
      The render pass framebuffer

  - ### renderArea

    public VulkanRectangle2D renderArea()
    Specified by:
      `renderArea` in interface `VulkanRenderPassBeginInfoType`
    Returns:
      The area to which rendering will occur

  - ### clearValues

    public List<VulkanClearValueType> clearValues()
    Specified by:
      `clearValues` in interface `VulkanRenderPassBeginInfoType`
    Returns:
      The clear values for each attachment

  - ### withRenderPass

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

  - ### withFramebuffer

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

  - ### withRenderArea

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

  - ### withClearValues

    public final VulkanRenderPassBeginInfo withClearValues(VulkanClearValueType... elements)
    Copy the current immutable object with elements that replace the content of `clearValues`.
    Parameters:
      `elements` - The elements to set
    Returns:
      A modified copy of `this` object

  - ### withClearValues

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

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanRenderPassBeginInfo` 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: `renderPass`, `framebuffer`, `renderArea`, `clearValues`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

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

  - ### copyOf

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

  - ### builder

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

        VulkanRenderPassBeginInfo.builder()
           .setRenderPass(com.io7m.jcoronado.api.VulkanRenderPassType) // required renderPass
           .setFramebuffer(com.io7m.jcoronado.api.VulkanFramebufferType) // required framebuffer
           .setRenderArea(com.io7m.jcoronado.api.VulkanRectangle2D) // optional renderArea
           .addClearValues|addAllClearValues(com.io7m.jcoronado.api.VulkanClearValueType) // clearValues elements
           .build();

    Returns:
      A new VulkanRenderPassBeginInfo builder