# Class VulkanImageCopy.Builder

java.lang.Object
com.io7m.jcoronado.api.VulkanImageCopy.Builder

Enclosing class:
  `VulkanImageCopy`

public static final class VulkanImageCopy.Builder extends Object
Builds instances of type `VulkanImageCopy`. Initialize attributes and then invoke the `build()` method to create an immutable instance.

`Builder` is not thread-safe and generally should not be stored in a field or collection, but instead used immediately to create instances.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VulkanImageCopy`
  `build()`
  Builds a new `VulkanImageCopy`.
  `final VulkanImageCopy.Builder`
  `from(VulkanImageCopyType instance)`
  Fill a builder with attribute values from the provided `VulkanImageCopyType` instance.
  `final VulkanImageCopy.Builder`
  `setExtent(VulkanExtent3D extent)`
  Initializes the value for the `extent` attribute.
  `final VulkanImageCopy.Builder`
  `setSourceOffset(VulkanOffset3D sourceOffset)`
  Initializes the value for the `sourceOffset` attribute.
  `final VulkanImageCopy.Builder`
  `setSourceSubresource(VulkanImageSubresourceLayers sourceSubresource)`
  Initializes the value for the `sourceSubresource` attribute.
  `final VulkanImageCopy.Builder`
  `setTargetOffset(VulkanOffset3D targetOffset)`
  Initializes the value for the `targetOffset` attribute.
  `final VulkanImageCopy.Builder`
  `setTargetSubresource(VulkanImageSubresourceLayers targetSubresource)`
  Initializes the value for the `targetSubresource` attribute.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### from

    public final VulkanImageCopy.Builder from(VulkanImageCopyType instance)
    Fill a builder with attribute values from the provided `VulkanImageCopyType` instance. Regular attribute values will be replaced with those from the given instance. Absent optional values will not replace present values.
    Parameters:
      `instance` - The instance from which to copy values
    Returns:
      `this` builder for use in a chained invocation

  - ### setSourceSubresource

    public final VulkanImageCopy.Builder setSourceSubresource(VulkanImageSubresourceLayers sourceSubresource)
    Initializes the value for the `sourceSubresource` attribute.
    Parameters:
      `sourceSubresource` - The value for sourceSubresource
    Returns:
      `this` builder for use in a chained invocation

  - ### setSourceOffset

    public final VulkanImageCopy.Builder setSourceOffset(VulkanOffset3D sourceOffset)
    Initializes the value for the `sourceOffset` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `sourceOffset`.

    Parameters:
      `sourceOffset` - The value for sourceOffset
    Returns:
      `this` builder for use in a chained invocation

  - ### setTargetSubresource

    public final VulkanImageCopy.Builder setTargetSubresource(VulkanImageSubresourceLayers targetSubresource)
    Initializes the value for the `targetSubresource` attribute.
    Parameters:
      `targetSubresource` - The value for targetSubresource
    Returns:
      `this` builder for use in a chained invocation

  - ### setTargetOffset

    public final VulkanImageCopy.Builder setTargetOffset(VulkanOffset3D targetOffset)
    Initializes the value for the `targetOffset` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `targetOffset`.

    Parameters:
      `targetOffset` - The value for targetOffset
    Returns:
      `this` builder for use in a chained invocation

  - ### setExtent

    public final VulkanImageCopy.Builder setExtent(VulkanExtent3D extent)
    Initializes the value for the `extent` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `extent`.

    Parameters:
      `extent` - The value for extent
    Returns:
      `this` builder for use in a chained invocation

  - ### build

    public VulkanImageCopy build()
    Builds a new `VulkanImageCopy`.
    Returns:
      An immutable instance of VulkanImageCopy
    Throws:
      `IllegalStateException` - if any required attributes are missing