- java.lang.Object
-
- com.io7m.jcoronado.api.VulkanImageCreateInfo
-
- All Implemented Interfaces:
VulkanImageCreateInfoType
public final class VulkanImageCreateInfo extends java.lang.Object implements VulkanImageCreateInfoType
- See Also:
- "VkImageCreateInfo"
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VulkanImageCreateInfo.Builder
Builds instances of typeVulkanImageCreateInfo
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
arrayLayers()
static VulkanImageCreateInfo.Builder
builder()
Creates a builder forVulkanImageCreateInfo
.static VulkanImageCreateInfo
copyOf(VulkanImageCreateInfoType instance)
Creates an immutable copy of aVulkanImageCreateInfoType
value.boolean
equals(java.lang.Object another)
This instance is equal to all instances ofVulkanImageCreateInfo
that have equal attribute values.VulkanExtent3D
extent()
java.util.Set<VulkanImageCreateFlag>
flags()
VulkanFormat
format()
int
hashCode()
Computes a hash code from attributes:flags
,imageType
,format
,extent
,mipLevels
,arrayLayers
,samples
,tiling
,usage
,sharingMode
,queueFamilyIndices
,initialLayout
.VulkanImageKind
imageType()
VulkanImageLayout
initialLayout()
int
mipLevels()
static VulkanImageCreateInfo
of(java.lang.Iterable<VulkanImageCreateFlag> flags, VulkanImageKind imageType, VulkanFormat format, VulkanExtent3D extent, int mipLevels, int arrayLayers, java.lang.Iterable<VulkanSampleCountFlag> samples, VulkanImageTiling tiling, java.lang.Iterable<VulkanImageUsageFlag> usage, VulkanSharingMode sharingMode, java.lang.Iterable<java.lang.Integer> queueFamilyIndices, VulkanImageLayout initialLayout)
Construct a new immutableVulkanImageCreateInfo
instance.static VulkanImageCreateInfo
of(java.util.Set<VulkanImageCreateFlag> flags, VulkanImageKind imageType, VulkanFormat format, VulkanExtent3D extent, int mipLevels, int arrayLayers, java.util.Set<VulkanSampleCountFlag> samples, VulkanImageTiling tiling, java.util.Set<VulkanImageUsageFlag> usage, VulkanSharingMode sharingMode, java.util.List<java.lang.Integer> queueFamilyIndices, VulkanImageLayout initialLayout)
Construct a new immutableVulkanImageCreateInfo
instance.java.util.List<java.lang.Integer>
queueFamilyIndices()
java.util.Set<VulkanSampleCountFlag>
samples()
VulkanSharingMode
sharingMode()
VulkanImageTiling
tiling()
java.lang.String
toString()
Prints the immutable valueVulkanImageCreateInfo
with attribute values.java.util.Set<VulkanImageUsageFlag>
usage()
VulkanImageCreateInfo
withArrayLayers(int value)
Copy the current immutable object by setting a value for thearrayLayers
attribute.VulkanImageCreateInfo
withExtent(VulkanExtent3D value)
Copy the current immutable object by setting a value for theextent
attribute.VulkanImageCreateInfo
withFlags(VulkanImageCreateFlag... elements)
Copy the current immutable object with elements that replace the content offlags
.VulkanImageCreateInfo
withFlags(java.lang.Iterable<VulkanImageCreateFlag> elements)
Copy the current immutable object with elements that replace the content offlags
.VulkanImageCreateInfo
withFormat(VulkanFormat value)
Copy the current immutable object by setting a value for theformat
attribute.VulkanImageCreateInfo
withImageType(VulkanImageKind value)
Copy the current immutable object by setting a value for theimageType
attribute.VulkanImageCreateInfo
withInitialLayout(VulkanImageLayout value)
Copy the current immutable object by setting a value for theinitialLayout
attribute.VulkanImageCreateInfo
withMipLevels(int value)
Copy the current immutable object by setting a value for themipLevels
attribute.VulkanImageCreateInfo
withQueueFamilyIndices(int... elements)
Copy the current immutable object with elements that replace the content ofqueueFamilyIndices
.VulkanImageCreateInfo
withQueueFamilyIndices(java.lang.Iterable<java.lang.Integer> elements)
Copy the current immutable object with elements that replace the content ofqueueFamilyIndices
.VulkanImageCreateInfo
withSamples(VulkanSampleCountFlag... elements)
Copy the current immutable object with elements that replace the content ofsamples
.VulkanImageCreateInfo
withSamples(java.lang.Iterable<VulkanSampleCountFlag> elements)
Copy the current immutable object with elements that replace the content ofsamples
.VulkanImageCreateInfo
withSharingMode(VulkanSharingMode value)
Copy the current immutable object by setting a value for thesharingMode
attribute.VulkanImageCreateInfo
withTiling(VulkanImageTiling value)
Copy the current immutable object by setting a value for thetiling
attribute.VulkanImageCreateInfo
withUsage(VulkanImageUsageFlag... elements)
Copy the current immutable object with elements that replace the content ofusage
.VulkanImageCreateInfo
withUsage(java.lang.Iterable<VulkanImageUsageFlag> elements)
Copy the current immutable object with elements that replace the content ofusage
.
-
-
-
Method Detail
-
flags
public java.util.Set<VulkanImageCreateFlag> flags()
- Specified by:
flags
in interfaceVulkanImageCreateInfoType
- Returns:
- A set of flags describing additional parameters of the image.
-
imageType
public VulkanImageKind imageType()
- Specified by:
imageType
in interfaceVulkanImageCreateInfoType
- Returns:
- A value specifying the basic dimensionality of the image. Layers in array textures do not count as a dimension for the purposes of the image type.
-
format
public VulkanFormat format()
- Specified by:
format
in interfaceVulkanImageCreateInfoType
- Returns:
- A value describing the format and type of the texel blocks that will be contained in the image.
-
extent
public VulkanExtent3D extent()
- Specified by:
extent
in interfaceVulkanImageCreateInfoType
- Returns:
- A value describing the number of data elements in each dimension of the base level.
-
mipLevels
public int mipLevels()
- Specified by:
mipLevels
in interfaceVulkanImageCreateInfoType
- Returns:
- The number of levels of detail available for minified sampling of the image.
-
arrayLayers
public int arrayLayers()
- Specified by:
arrayLayers
in interfaceVulkanImageCreateInfoType
- Returns:
- The the number of layers in the image.
-
samples
public java.util.Set<VulkanSampleCountFlag> samples()
- Specified by:
samples
in interfaceVulkanImageCreateInfoType
- Returns:
- A value specifying the number of samples per texel.
-
tiling
public VulkanImageTiling tiling()
- Specified by:
tiling
in interfaceVulkanImageCreateInfoType
- Returns:
- A value specifying the tiling arrangement of the texel blocks in memory.
-
usage
public java.util.Set<VulkanImageUsageFlag> usage()
- Specified by:
usage
in interfaceVulkanImageCreateInfoType
- Returns:
- A value describing the intended usage of the image.
-
sharingMode
public VulkanSharingMode sharingMode()
- Specified by:
sharingMode
in interfaceVulkanImageCreateInfoType
- Returns:
- A value specifying the sharing mode of the image when it will be accessed by multiple queue families.
-
queueFamilyIndices
public java.util.List<java.lang.Integer> queueFamilyIndices()
- Specified by:
queueFamilyIndices
in interfaceVulkanImageCreateInfoType
- Returns:
- A list of queue families that will access this image (ignored if sharingMode is not VK_SHARING_MODE_CONCURRENT).
-
initialLayout
public VulkanImageLayout initialLayout()
- Specified by:
initialLayout
in interfaceVulkanImageCreateInfoType
- Returns:
- A value specifying the initial layout of all image subresources of the image.
-
withFlags
public final VulkanImageCreateInfo withFlags(VulkanImageCreateFlag... elements)
Copy the current immutable object with elements that replace the content offlags
.- Parameters:
elements
- The elements to set- Returns:
- A modified copy of
this
object
-
withFlags
public final VulkanImageCreateInfo withFlags(java.lang.Iterable<VulkanImageCreateFlag> elements)
Copy the current immutable object with elements that replace the content offlags
. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
elements
- An iterable of flags elements to set- Returns:
- A modified copy of
this
object
-
withImageType
public final VulkanImageCreateInfo withImageType(VulkanImageKind value)
Copy the current immutable object by setting a value for theimageType
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for imageType- Returns:
- A modified copy of the
this
object
-
withFormat
public final VulkanImageCreateInfo withFormat(VulkanFormat value)
Copy the current immutable object by setting a value for theformat
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for format- Returns:
- A modified copy of the
this
object
-
withExtent
public final VulkanImageCreateInfo withExtent(VulkanExtent3D value)
Copy the current immutable object by setting a value for theextent
attribute. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for extent- Returns:
- A modified copy of the
this
object
-
withMipLevels
public final VulkanImageCreateInfo withMipLevels(int value)
Copy the current immutable object by setting a value for themipLevels
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for mipLevels- Returns:
- A modified copy of the
this
object
-
withArrayLayers
public final VulkanImageCreateInfo withArrayLayers(int value)
Copy the current immutable object by setting a value for thearrayLayers
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for arrayLayers- Returns:
- A modified copy of the
this
object
-
withSamples
public final VulkanImageCreateInfo withSamples(VulkanSampleCountFlag... elements)
Copy the current immutable object with elements that replace the content ofsamples
.- Parameters:
elements
- The elements to set- Returns:
- A modified copy of
this
object
-
withSamples
public final VulkanImageCreateInfo withSamples(java.lang.Iterable<VulkanSampleCountFlag> elements)
Copy the current immutable object with elements that replace the content ofsamples
. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
elements
- An iterable of samples elements to set- Returns:
- A modified copy of
this
object
-
withTiling
public final VulkanImageCreateInfo withTiling(VulkanImageTiling value)
Copy the current immutable object by setting a value for thetiling
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for tiling- Returns:
- A modified copy of the
this
object
-
withUsage
public final VulkanImageCreateInfo withUsage(VulkanImageUsageFlag... elements)
Copy the current immutable object with elements that replace the content ofusage
.- Parameters:
elements
- The elements to set- Returns:
- A modified copy of
this
object
-
withUsage
public final VulkanImageCreateInfo withUsage(java.lang.Iterable<VulkanImageUsageFlag> elements)
Copy the current immutable object with elements that replace the content ofusage
. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
elements
- An iterable of usage elements to set- Returns:
- A modified copy of
this
object
-
withSharingMode
public final VulkanImageCreateInfo withSharingMode(VulkanSharingMode value)
Copy the current immutable object by setting a value for thesharingMode
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sharingMode- Returns:
- A modified copy of the
this
object
-
withQueueFamilyIndices
public final VulkanImageCreateInfo withQueueFamilyIndices(int... elements)
Copy the current immutable object with elements that replace the content ofqueueFamilyIndices
.- Parameters:
elements
- The elements to set- Returns:
- A modified copy of
this
object
-
withQueueFamilyIndices
public final VulkanImageCreateInfo withQueueFamilyIndices(java.lang.Iterable<java.lang.Integer> elements)
Copy the current immutable object with elements that replace the content ofqueueFamilyIndices
. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
elements
- An iterable of queueFamilyIndices elements to set- Returns:
- A modified copy of
this
object
-
withInitialLayout
public final VulkanImageCreateInfo withInitialLayout(VulkanImageLayout value)
Copy the current immutable object by setting a value for theinitialLayout
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for initialLayout- Returns:
- A modified copy of the
this
object
-
equals
public boolean equals(java.lang.Object another)
This instance is equal to all instances ofVulkanImageCreateInfo
that have equal attribute values.- Overrides:
equals
in classjava.lang.Object
- Returns:
true
ifthis
is equal toanother
instance
-
hashCode
public int hashCode()
Computes a hash code from attributes:flags
,imageType
,format
,extent
,mipLevels
,arrayLayers
,samples
,tiling
,usage
,sharingMode
,queueFamilyIndices
,initialLayout
.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- hashCode value
-
toString
public java.lang.String toString()
Prints the immutable valueVulkanImageCreateInfo
with attribute values.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A string representation of the value
-
of
public static VulkanImageCreateInfo of(java.util.Set<VulkanImageCreateFlag> flags, VulkanImageKind imageType, VulkanFormat format, VulkanExtent3D extent, int mipLevels, int arrayLayers, java.util.Set<VulkanSampleCountFlag> samples, VulkanImageTiling tiling, java.util.Set<VulkanImageUsageFlag> usage, VulkanSharingMode sharingMode, java.util.List<java.lang.Integer> queueFamilyIndices, VulkanImageLayout initialLayout)
Construct a new immutableVulkanImageCreateInfo
instance.- Parameters:
flags
- The value for theflags
attributeimageType
- The value for theimageType
attributeformat
- The value for theformat
attributeextent
- The value for theextent
attributemipLevels
- The value for themipLevels
attributearrayLayers
- The value for thearrayLayers
attributesamples
- The value for thesamples
attributetiling
- The value for thetiling
attributeusage
- The value for theusage
attributesharingMode
- The value for thesharingMode
attributequeueFamilyIndices
- The value for thequeueFamilyIndices
attributeinitialLayout
- The value for theinitialLayout
attribute- Returns:
- An immutable VulkanImageCreateInfo instance
-
of
public static VulkanImageCreateInfo of(java.lang.Iterable<VulkanImageCreateFlag> flags, VulkanImageKind imageType, VulkanFormat format, VulkanExtent3D extent, int mipLevels, int arrayLayers, java.lang.Iterable<VulkanSampleCountFlag> samples, VulkanImageTiling tiling, java.lang.Iterable<VulkanImageUsageFlag> usage, VulkanSharingMode sharingMode, java.lang.Iterable<java.lang.Integer> queueFamilyIndices, VulkanImageLayout initialLayout)
Construct a new immutableVulkanImageCreateInfo
instance.- Parameters:
flags
- The value for theflags
attributeimageType
- The value for theimageType
attributeformat
- The value for theformat
attributeextent
- The value for theextent
attributemipLevels
- The value for themipLevels
attributearrayLayers
- The value for thearrayLayers
attributesamples
- The value for thesamples
attributetiling
- The value for thetiling
attributeusage
- The value for theusage
attributesharingMode
- The value for thesharingMode
attributequeueFamilyIndices
- The value for thequeueFamilyIndices
attributeinitialLayout
- The value for theinitialLayout
attribute- Returns:
- An immutable VulkanImageCreateInfo instance
-
copyOf
public static VulkanImageCreateInfo copyOf(VulkanImageCreateInfoType instance)
Creates an immutable copy of aVulkanImageCreateInfoType
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 VulkanImageCreateInfo instance
-
builder
public static VulkanImageCreateInfo.Builder builder()
Creates a builder forVulkanImageCreateInfo
.- Returns:
- A new VulkanImageCreateInfo builder
-
-