Class VulkanDependencyInfo

java.lang.Object
com.io7m.jcoronado.api.VulkanDependencyInfo
All Implemented Interfaces:
VulkanDependencyInfoType

public final class VulkanDependencyInfo extends Object implements VulkanDependencyInfoType
See Also:
  • "VkDependencyInfo"
  • Method Details

    • flags

      public Set<VulkanDependencyFlag> flags()
      Specified by:
      flags in interface VulkanDependencyInfoType
      Returns:
      A set of flags specifying how execution and memory dependencies are formed.
    • memoryBarriers

      public List<VulkanMemoryBarrier> memoryBarriers()
      Specified by:
      memoryBarriers in interface VulkanDependencyInfoType
      Returns:
      The memory barriers for any memory accesses
    • bufferMemoryBarriers

      public List<VulkanBufferMemoryBarrier> bufferMemoryBarriers()
      Specified by:
      bufferMemoryBarriers in interface VulkanDependencyInfoType
      Returns:
      The memory dependencies between buffer ranges
    • imageMemoryBarriers

      public List<VulkanImageMemoryBarrier> imageMemoryBarriers()
      Specified by:
      imageMemoryBarriers in interface VulkanDependencyInfoType
      Returns:
      The memory dependencies between image subresources
    • withFlags

      public final VulkanDependencyInfo withFlags(VulkanDependencyFlag... elements)
      Copy the current immutable object with elements that replace the content of flags.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withFlags

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

      public final VulkanDependencyInfo withMemoryBarriers(VulkanMemoryBarrier... elements)
      Copy the current immutable object with elements that replace the content of memoryBarriers.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withMemoryBarriers

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

      public final VulkanDependencyInfo withBufferMemoryBarriers(VulkanBufferMemoryBarrier... elements)
      Copy the current immutable object with elements that replace the content of bufferMemoryBarriers.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withBufferMemoryBarriers

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

      public final VulkanDependencyInfo withImageMemoryBarriers(VulkanImageMemoryBarrier... elements)
      Copy the current immutable object with elements that replace the content of imageMemoryBarriers.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withImageMemoryBarriers

      public final VulkanDependencyInfo withImageMemoryBarriers(Iterable<? extends VulkanImageMemoryBarrier> elements)
      Copy the current immutable object with elements that replace the content of imageMemoryBarriers. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      elements - An iterable of imageMemoryBarriers 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 VulkanDependencyInfo 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: flags, memoryBarriers, bufferMemoryBarriers, imageMemoryBarriers.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

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

      public static VulkanDependencyInfo copyOf(VulkanDependencyInfoType instance)
      Creates an immutable copy of a VulkanDependencyInfoType 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 VulkanDependencyInfo instance
    • builder

      public static VulkanDependencyInfo.Builder builder()
      Creates a builder for VulkanDependencyInfo.
      VulkanDependencyInfo.builder()
         .addFlags|addAllFlags(com.io7m.jcoronado.api.VulkanDependencyFlag) // flags elements
         .addMemoryBarriers|addAllMemoryBarriers(VulkanMemoryBarrier) // memoryBarriers elements
         .addBufferMemoryBarriers|addAllBufferMemoryBarriers(VulkanBufferMemoryBarrier) // bufferMemoryBarriers elements
         .addImageMemoryBarriers|addAllImageMemoryBarriers(VulkanImageMemoryBarrier) // imageMemoryBarriers elements
         .build();
      
      Returns:
      A new VulkanDependencyInfo builder