Class VulkanInstanceCreateInfo

java.lang.Object
com.io7m.jcoronado.api.VulkanInstanceCreateInfo
All Implemented Interfaces:
VulkanInstanceCreateInfoType

public final class VulkanInstanceCreateInfo extends Object implements VulkanInstanceCreateInfoType
Information required to create a Vulkan instance.
See Also:
  • "VkInstanceCreateInfo"
  • Method Details

    • applicationInfo

      public VulkanApplicationInfo applicationInfo()
      Specified by:
      applicationInfo in interface VulkanInstanceCreateInfoType
      Returns:
      The application info
    • enabledExtensions

      public Set<String> enabledExtensions()
      Specified by:
      enabledExtensions in interface VulkanInstanceCreateInfoType
      Returns:
      The names of all extensions that should be enabled
    • enabledLayers

      public Set<String> enabledLayers()
      Specified by:
      enabledLayers in interface VulkanInstanceCreateInfoType
      Returns:
      The names of all layers that should be enabled
    • extensionInfo

      public List<VulkanInstanceExtensionInfoType> extensionInfo()
      Specified by:
      extensionInfo in interface VulkanInstanceCreateInfoType
      Returns:
      The list of instance creation extensions
    • withApplicationInfo

      public final VulkanInstanceCreateInfo withApplicationInfo(VulkanApplicationInfo value)
      Copy the current immutable object by setting a value for the applicationInfo attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for applicationInfo
      Returns:
      A modified copy of the this object
    • withEnabledExtensions

      public final VulkanInstanceCreateInfo withEnabledExtensions(String... elements)
      Copy the current immutable object with elements that replace the content of enabledExtensions.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withEnabledExtensions

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

      public final VulkanInstanceCreateInfo withEnabledLayers(String... elements)
      Copy the current immutable object with elements that replace the content of enabledLayers.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withEnabledLayers

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

      public final VulkanInstanceCreateInfo withExtensionInfo(VulkanInstanceExtensionInfoType... elements)
      Copy the current immutable object with elements that replace the content of extensionInfo.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withExtensionInfo

      public final VulkanInstanceCreateInfo withExtensionInfo(Iterable<? extends VulkanInstanceExtensionInfoType> elements)
      Copy the current immutable object with elements that replace the content of extensionInfo. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      elements - An iterable of extensionInfo elements to set
      Returns:
      A modified copy of this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanInstanceCreateInfo 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: applicationInfo, enabledExtensions, enabledLayers, extensionInfo.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

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

      public static VulkanInstanceCreateInfo of(VulkanApplicationInfo applicationInfo, Set<String> enabledExtensions, Set<String> enabledLayers)
      Construct a new immutable VulkanInstanceCreateInfo instance.
      Parameters:
      applicationInfo - The value for the applicationInfo attribute
      enabledExtensions - The value for the enabledExtensions attribute
      enabledLayers - The value for the enabledLayers attribute
      Returns:
      An immutable VulkanInstanceCreateInfo instance
    • of

      public static VulkanInstanceCreateInfo of(VulkanApplicationInfo applicationInfo, Iterable<String> enabledExtensions, Iterable<String> enabledLayers)
      Construct a new immutable VulkanInstanceCreateInfo instance.
      Parameters:
      applicationInfo - The value for the applicationInfo attribute
      enabledExtensions - The value for the enabledExtensions attribute
      enabledLayers - The value for the enabledLayers attribute
      Returns:
      An immutable VulkanInstanceCreateInfo instance
    • copyOf

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

      public static VulkanInstanceCreateInfo.Builder builder()
      Creates a builder for VulkanInstanceCreateInfo.
       VulkanInstanceCreateInfo.builder()
          .setApplicationInfo(com.io7m.jcoronado.api.VulkanApplicationInfo) // required applicationInfo
          .addEnabledExtensions|addAllEnabledExtensions(String) // enabledExtensions elements
          .addEnabledLayers|addAllEnabledLayers(String) // enabledLayers elements
          .addExtensionInfo|addAllExtensionInfo(com.io7m.jcoronado.api.VulkanInstanceExtensionInfoType) // extensionInfo elements
          .build();
       
      Returns:
      A new VulkanInstanceCreateInfo builder