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 or 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 or 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 or 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 or this if not changed
    • 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 or 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
    • 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) // optional maxExtent
         .setMaxMipLevels(int) // optional maxMipLevels
         .setMaxArrayLayers(int) // optional maxArrayLayers
         .addSampleCounts|addAllSampleCounts(com.io7m.jcoronado.api.VulkanSampleCountFlag) // sampleCounts elements
         .setMaxResourceSize(long) // optional maxResourceSize
         .build();
      
      Returns:
      A new VulkanImageFormatProperties builder