Class VulkanComputeWorkGroupSize

java.lang.Object
com.io7m.jcoronado.api.VulkanComputeWorkGroupSize
All Implemented Interfaces:
VulkanComputeWorkGroupSizeType

public final class VulkanComputeWorkGroupSize extends Object implements VulkanComputeWorkGroupSizeType
the maximum size of a local compute workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes specified by the LocalSize execution mode and by the object decorated by the WorkgroupSize decoration in shader modules must be less than or equal to the corresponding limit.
See Also:
  • "VkPhysicalDeviceLimits"
  • Method Details

    • maximumX

      public int maximumX()
      Specified by:
      maximumX in interface VulkanComputeWorkGroupSizeType
      Returns:
      The limit on the X dimension
    • maximumY

      public int maximumY()
      Specified by:
      maximumY in interface VulkanComputeWorkGroupSizeType
      Returns:
      The limit on the Y dimension
    • maximumZ

      public int maximumZ()
      Specified by:
      maximumZ in interface VulkanComputeWorkGroupSizeType
      Returns:
      The limit on the Z dimension
    • withMaximumX

      public final VulkanComputeWorkGroupSize withMaximumX(int value)
      Copy the current immutable object by setting a value for the maximumX attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for maximumX
      Returns:
      A modified copy or the this object
    • withMaximumY

      public final VulkanComputeWorkGroupSize withMaximumY(int value)
      Copy the current immutable object by setting a value for the maximumY attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for maximumY
      Returns:
      A modified copy or the this object
    • withMaximumZ

      public final VulkanComputeWorkGroupSize withMaximumZ(int value)
      Copy the current immutable object by setting a value for the maximumZ attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for maximumZ
      Returns:
      A modified copy or the this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanComputeWorkGroupSize 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: maximumX, maximumY, maximumZ.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

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

      Creates an immutable copy of a VulkanComputeWorkGroupSizeType 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 VulkanComputeWorkGroupSize instance
    • builder

      public static VulkanComputeWorkGroupSize.Builder builder()
      Creates a builder for VulkanComputeWorkGroupSize.
      VulkanComputeWorkGroupSize.builder()
         .setMaximumX(int) // optional maximumX
         .setMaximumY(int) // optional maximumY
         .setMaximumZ(int) // optional maximumZ
         .build();
      
      Returns:
      A new VulkanComputeWorkGroupSize builder