Class VulkanImageFormatProperties

java.lang.Object
com.io7m.jcoronado.api.VulkanImageFormatProperties
All Implemented Interfaces:
VulkanImageFormatPropertiesType

public final class VulkanImageFormatProperties extends Object implements VulkanImageFormatPropertiesType
Structure specifying image format properties.
  • Method Details

    • maxExtent

      public VulkanExtent3D maxExtent()
      Specified by:
      maxExtent in interface VulkanImageFormatPropertiesType
      Returns:
      The maximum image dimensions.
    • maxMipLevels

      public int maxMipLevels()
      Specified by:
      maxMipLevels in interface VulkanImageFormatPropertiesType
      Returns:
      The maximum number of mipmap levels.
    • maxArrayLayers

      public int maxArrayLayers()
      Specified by:
      maxArrayLayers in interface VulkanImageFormatPropertiesType
      Returns:
      The maximum number of array layers.
    • sampleCounts

      public Set<VulkanSampleCountFlag> sampleCounts()
      Specified by:
      sampleCounts in interface VulkanImageFormatPropertiesType
      Returns:
      A set of flags specifying all the supported sample counts for this image
    • maxResourceSize

      public long maxResourceSize()
      Specified by:
      maxResourceSize in interface VulkanImageFormatPropertiesType
      Returns:
      An upper bound on the total image size in bytes, inclusive of all image subresources.
    • withMaxExtent

      public final VulkanImageFormatProperties withMaxExtent(VulkanExtent3D value)
      Copy the current immutable object by setting a value for the maxExtent attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for maxExtent
      Returns:
      A modified copy of the this object
    • withMaxMipLevels

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

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

      public final VulkanImageFormatProperties withSampleCounts(VulkanSampleCountFlag... elements)
      Copy the current immutable object with elements that replace the content of sampleCounts.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withSampleCounts

      public final VulkanImageFormatProperties withSampleCounts(Iterable<VulkanSampleCountFlag> elements)
      Copy the current immutable object with elements that replace the content of sampleCounts. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      elements - An iterable of sampleCounts elements to set
      Returns:
      A modified copy of this object
    • withMaxResourceSize

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

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanImageFormatProperties 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: maxExtent, maxMipLevels, maxArrayLayers, sampleCounts, maxResourceSize.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

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

      public static VulkanImageFormatProperties of(VulkanExtent3D maxExtent, int maxMipLevels, int maxArrayLayers, Set<VulkanSampleCountFlag> sampleCounts, long maxResourceSize)
      Construct a new immutable VulkanImageFormatProperties instance.
      Parameters:
      maxExtent - The value for the maxExtent attribute
      maxMipLevels - The value for the maxMipLevels attribute
      maxArrayLayers - The value for the maxArrayLayers attribute
      sampleCounts - The value for the sampleCounts attribute
      maxResourceSize - The value for the maxResourceSize attribute
      Returns:
      An immutable VulkanImageFormatProperties instance
    • of

      public static VulkanImageFormatProperties of(VulkanExtent3D maxExtent, int maxMipLevels, int maxArrayLayers, Iterable<VulkanSampleCountFlag> sampleCounts, long maxResourceSize)
      Construct a new immutable VulkanImageFormatProperties instance.
      Parameters:
      maxExtent - The value for the maxExtent attribute
      maxMipLevels - The value for the maxMipLevels attribute
      maxArrayLayers - The value for the maxArrayLayers attribute
      sampleCounts - The value for the sampleCounts attribute
      maxResourceSize - The value for the maxResourceSize attribute
      Returns:
      An immutable VulkanImageFormatProperties instance
    • copyOf

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

      public static VulkanImageFormatProperties.Builder builder()
      Creates a builder for VulkanImageFormatProperties.
       VulkanImageFormatProperties.builder()
          .setMaxExtent(com.io7m.jcoronado.api.VulkanExtent3D) // required maxExtent
          .setMaxMipLevels(int) // required maxMipLevels
          .setMaxArrayLayers(int) // required maxArrayLayers
          .addSampleCounts|addAllSampleCounts(com.io7m.jcoronado.api.VulkanSampleCountFlag) // sampleCounts elements
          .setMaxResourceSize(long) // required maxResourceSize
          .build();
       
      Returns:
      A new VulkanImageFormatProperties builder