Class VkAttachmentDescription
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkAttachmentDescription
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkAttachmentDescription extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure specifying an attachment description.Description
If the attachment uses a color format, then
loadOpandstoreOpare used, andstencilLoadOpandstencilStoreOpare ignored. If the format has depth and/or stencil components,loadOpandstoreOpapply only to the depth data, whilestencilLoadOpandstencilStoreOpdefine how the stencil data is handled.loadOpandstencilLoadOpdefine the load operations that execute as part of the first subpass that uses the attachment.storeOpandstencilStoreOpdefine the store operations that execute as part of the last subpass that uses the attachment.The load operation for each sample in an attachment happens-before any recorded command which accesses the sample in the first subpass where the attachment is used. Load operations for attachments with a depth/stencil format execute in the
PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BITpipeline stage. Load operations for attachments with a color format execute in thePIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITpipeline stage.The store operation for each sample in an attachment happens-after any recorded command which accesses the sample in the last subpass where the attachment is used. Store operations for attachments with a depth/stencil format execute in the
PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BITpipeline stage. Store operations for attachments with a color format execute in thePIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITpipeline stage.If an attachment is not used by any subpass, then
loadOp,storeOp,stencilStoreOp, andstencilLoadOpare ignored, and the attachment's memory contents will not be modified by execution of a render pass instance.The load and store operations apply on the first and last use of each view in the render pass, respectively. If a view index of an attachment is not included in the view mask in any subpass that uses it, then the load and store operations are ignored, and the attachment's memory contents will not be modified by execution of a render pass instance.
During a render pass instance, input/color attachments with color formats that have a component size of 8, 16, or 32 bits must be represented in the attachment's format throughout the instance. Attachments with other floating- or fixed-point color formats, or with depth components may be represented in a format with a precision higher than the attachment format, but must be represented with the same range. When such a component is loaded via the
loadOp, it will be converted into an implementation-dependent format used by the render pass. Such components must be converted from the render pass format, to the format of the attachment, before they are resolved or stored at the end of a render pass instance viastoreOp. Conversions occur as described in Numeric Representation and Computation and Fixed-Point Data Conversions.If
flagsincludesATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT, then the attachment is treated as if it shares physical memory with another attachment in the same render pass. This information limits the ability of the implementation to reorder certain operations (like layout transitions and theloadOp) such that it is not improperly reordered against other uses of the same physical memory via a different attachment. This is described in more detail below.Valid Usage
finalLayoutmust not beIMAGE_LAYOUT_UNDEFINEDorIMAGE_LAYOUT_PREINITIALIZED
Valid Usage (Implicit)
flagsmust be a valid combination ofVkAttachmentDescriptionFlagBitsvaluesformatmust be a validVkFormatvaluesamplesmust be a validVkSampleCountFlagBitsvalueloadOpmust be a validVkAttachmentLoadOpvaluestoreOpmust be a validVkAttachmentStoreOpvaluestencilLoadOpmust be a validVkAttachmentLoadOpvaluestencilStoreOpmust be a validVkAttachmentStoreOpvalueinitialLayoutmust be a validVkImageLayoutvaluefinalLayoutmust be a validVkImageLayoutvalue
See Also
Member documentation
flags– a bitmask ofVkAttachmentDescriptionFlagBitsspecifying additional properties of the attachment.format– aVkFormatvalue specifying the format of the image view that will be used for the attachment.samples– the number of samples of the image as defined inVkSampleCountFlagBits.loadOp– aVkAttachmentLoadOpvalue specifying how the contents of color and depth components of the attachment are treated at the beginning of the subpass where it is first used.storeOp– aVkAttachmentStoreOpvalue specifying how the contents of color and depth components of the attachment are treated at the end of the subpass where it is last used.stencilLoadOp– aVkAttachmentLoadOpvalue specifying how the contents of stencil components of the attachment are treated at the beginning of the subpass where it is first used.stencilStoreOp– aVkAttachmentStoreOpvalue specifying how the contents of stencil components of the attachment are treated at the end of the last subpass where it is used.initialLayout– the layout the attachment image subresource will be in when a render pass instance begins.finalLayout– the layout the attachment image subresource will be transitioned to when a render pass instance ends.
Layout
struct VkAttachmentDescription { VkAttachmentDescriptionFlags flags; VkFormat format; VkSampleCountFlagBits samples; VkAttachmentLoadOp loadOp; VkAttachmentStoreOp storeOp; VkAttachmentLoadOp stencilLoadOp; VkAttachmentStoreOp stencilStoreOp; VkImageLayout initialLayout; VkImageLayout finalLayout; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkAttachmentDescription.BufferAn array ofVkAttachmentDescriptionstructs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intFINALLAYOUT
FLAGS
FORMAT
INITIALLAYOUT
LOADOP
SAMPLESThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSTENCILLOADOP
STENCILSTOREOP
STOREOPThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkAttachmentDescription(java.nio.ByteBuffer container)Creates aVkAttachmentDescriptioninstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkAttachmentDescriptioncalloc()Returns a newVkAttachmentDescriptioninstance allocated withmemCalloc.static VkAttachmentDescription.Buffercalloc(int capacity)Returns a newVkAttachmentDescription.Bufferinstance allocated withmemCalloc.static VkAttachmentDescriptioncallocStack()Returns a newVkAttachmentDescriptioninstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkAttachmentDescription.BuffercallocStack(int capacity)Returns a newVkAttachmentDescription.Bufferinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkAttachmentDescription.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkAttachmentDescription.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkAttachmentDescriptioncallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkAttachmentDescriptioninstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkAttachmentDescriptioncreate()Returns a newVkAttachmentDescriptioninstance allocated withBufferUtils.static VkAttachmentDescription.Buffercreate(int capacity)Returns a newVkAttachmentDescription.Bufferinstance allocated withBufferUtils.static VkAttachmentDescriptioncreate(long address)Returns a newVkAttachmentDescriptioninstance for the specified memory address.static VkAttachmentDescription.Buffercreate(long address, int capacity)Create aVkAttachmentDescription.Bufferinstance at the specified memory.static VkAttachmentDescriptioncreateSafe(long address)static VkAttachmentDescription.BuffercreateSafe(long address, int capacity)intfinalLayout()Returns the value of thefinalLayoutfield.VkAttachmentDescriptionfinalLayout(int value)Sets the specified value to thefinalLayoutfield.intflags()Returns the value of theflagsfield.VkAttachmentDescriptionflags(int value)Sets the specified value to theflagsfield.intformat()Returns the value of theformatfield.VkAttachmentDescriptionformat(int value)Sets the specified value to theformatfield.intinitialLayout()Returns the value of theinitialLayoutfield.VkAttachmentDescriptioninitialLayout(int value)Sets the specified value to theinitialLayoutfield.intloadOp()Returns the value of theloadOpfield.VkAttachmentDescriptionloadOp(int value)Sets the specified value to theloadOpfield.static VkAttachmentDescriptionmalloc()Returns a newVkAttachmentDescriptioninstance allocated withmemAlloc.static VkAttachmentDescription.Buffermalloc(int capacity)Returns a newVkAttachmentDescription.Bufferinstance allocated withmemAlloc.static VkAttachmentDescriptionmallocStack()Returns a newVkAttachmentDescriptioninstance allocated on the thread-localMemoryStack.static VkAttachmentDescription.BuffermallocStack(int capacity)Returns a newVkAttachmentDescription.Bufferinstance allocated on the thread-localMemoryStack.static VkAttachmentDescription.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkAttachmentDescription.Bufferinstance allocated on the specifiedMemoryStack.static VkAttachmentDescriptionmallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkAttachmentDescriptioninstance allocated on the specifiedMemoryStack.static intnfinalLayout(long struct)Unsafe version offinalLayout().static voidnfinalLayout(long struct, int value)Unsafe version offinalLayout.static intnflags(long struct)Unsafe version offlags().static voidnflags(long struct, int value)Unsafe version offlags.static intnformat(long struct)Unsafe version offormat().static voidnformat(long struct, int value)Unsafe version offormat.static intninitialLayout(long struct)Unsafe version ofinitialLayout().static voidninitialLayout(long struct, int value)Unsafe version ofinitialLayout.static intnloadOp(long struct)Unsafe version ofloadOp().static voidnloadOp(long struct, int value)Unsafe version ofloadOp.static intnsamples(long struct)Unsafe version ofsamples().static voidnsamples(long struct, int value)Unsafe version ofsamples.static intnstencilLoadOp(long struct)Unsafe version ofstencilLoadOp().static voidnstencilLoadOp(long struct, int value)Unsafe version ofstencilLoadOp.static intnstencilStoreOp(long struct)Unsafe version ofstencilStoreOp().static voidnstencilStoreOp(long struct, int value)Unsafe version ofstencilStoreOp.static intnstoreOp(long struct)Unsafe version ofstoreOp().static voidnstoreOp(long struct, int value)Unsafe version ofstoreOp.intsamples()Returns the value of thesamplesfield.VkAttachmentDescriptionsamples(int value)Sets the specified value to thesamplesfield.VkAttachmentDescriptionset(int flags, int format, int samples, int loadOp, int storeOp, int stencilLoadOp, int stencilStoreOp, int initialLayout, int finalLayout)Initializes this struct with the specified values.VkAttachmentDescriptionset(VkAttachmentDescription src)Copies the specified struct data to this struct.intsizeof()intstencilLoadOp()Returns the value of thestencilLoadOpfield.VkAttachmentDescriptionstencilLoadOp(int value)Sets the specified value to thestencilLoadOpfield.intstencilStoreOp()Returns the value of thestencilStoreOpfield.VkAttachmentDescriptionstencilStoreOp(int value)Sets the specified value to thestencilStoreOpfield.intstoreOp()Returns the value of thestoreOpfield.VkAttachmentDescriptionstoreOp(int value)Sets the specified value to thestoreOpfield.
-
-
-
Constructor Detail
-
VkAttachmentDescription
public VkAttachmentDescription(java.nio.ByteBuffer container)
Creates aVkAttachmentDescriptioninstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
flags
public int flags()
Returns the value of theflagsfield.
-
format
public int format()
Returns the value of theformatfield.
-
samples
public int samples()
Returns the value of thesamplesfield.
-
loadOp
public int loadOp()
Returns the value of theloadOpfield.
-
storeOp
public int storeOp()
Returns the value of thestoreOpfield.
-
stencilLoadOp
public int stencilLoadOp()
Returns the value of thestencilLoadOpfield.
-
stencilStoreOp
public int stencilStoreOp()
Returns the value of thestencilStoreOpfield.
-
initialLayout
public int initialLayout()
Returns the value of theinitialLayoutfield.
-
finalLayout
public int finalLayout()
Returns the value of thefinalLayoutfield.
-
flags
public VkAttachmentDescription flags(int value)
Sets the specified value to theflagsfield.
-
format
public VkAttachmentDescription format(int value)
Sets the specified value to theformatfield.
-
samples
public VkAttachmentDescription samples(int value)
Sets the specified value to thesamplesfield.
-
loadOp
public VkAttachmentDescription loadOp(int value)
Sets the specified value to theloadOpfield.
-
storeOp
public VkAttachmentDescription storeOp(int value)
Sets the specified value to thestoreOpfield.
-
stencilLoadOp
public VkAttachmentDescription stencilLoadOp(int value)
Sets the specified value to thestencilLoadOpfield.
-
stencilStoreOp
public VkAttachmentDescription stencilStoreOp(int value)
Sets the specified value to thestencilStoreOpfield.
-
initialLayout
public VkAttachmentDescription initialLayout(int value)
Sets the specified value to theinitialLayoutfield.
-
finalLayout
public VkAttachmentDescription finalLayout(int value)
Sets the specified value to thefinalLayoutfield.
-
set
public VkAttachmentDescription set(int flags, int format, int samples, int loadOp, int storeOp, int stencilLoadOp, int stencilStoreOp, int initialLayout, int finalLayout)
Initializes this struct with the specified values.
-
set
public VkAttachmentDescription set(VkAttachmentDescription src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkAttachmentDescription malloc()
Returns a newVkAttachmentDescriptioninstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkAttachmentDescription calloc()
Returns a newVkAttachmentDescriptioninstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkAttachmentDescription create()
Returns a newVkAttachmentDescriptioninstance allocated withBufferUtils.
-
create
public static VkAttachmentDescription create(long address)
Returns a newVkAttachmentDescriptioninstance for the specified memory address.
-
createSafe
@Nullable public static VkAttachmentDescription createSafe(long address)
-
malloc
public static VkAttachmentDescription.Buffer malloc(int capacity)
Returns a newVkAttachmentDescription.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkAttachmentDescription.Buffer calloc(int capacity)
Returns a newVkAttachmentDescription.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkAttachmentDescription.Buffer create(int capacity)
Returns a newVkAttachmentDescription.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkAttachmentDescription.Buffer create(long address, int capacity)
Create aVkAttachmentDescription.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkAttachmentDescription.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkAttachmentDescription mallocStack()
Returns a newVkAttachmentDescriptioninstance allocated on the thread-localMemoryStack.
-
callocStack
public static VkAttachmentDescription callocStack()
Returns a newVkAttachmentDescriptioninstance allocated on the thread-localMemoryStackand initializes all its bits to zero.
-
mallocStack
public static VkAttachmentDescription mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkAttachmentDescriptioninstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
callocStack
public static VkAttachmentDescription callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkAttachmentDescriptioninstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
mallocStack
public static VkAttachmentDescription.Buffer mallocStack(int capacity)
Returns a newVkAttachmentDescription.Bufferinstance allocated on the thread-localMemoryStack.- Parameters:
capacity- the buffer capacity
-
callocStack
public static VkAttachmentDescription.Buffer callocStack(int capacity)
Returns a newVkAttachmentDescription.Bufferinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacity
-
mallocStack
public static VkAttachmentDescription.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkAttachmentDescription.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
callocStack
public static VkAttachmentDescription.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkAttachmentDescription.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nflags
public static int nflags(long struct)
Unsafe version offlags().
-
nformat
public static int nformat(long struct)
Unsafe version offormat().
-
nsamples
public static int nsamples(long struct)
Unsafe version ofsamples().
-
nloadOp
public static int nloadOp(long struct)
Unsafe version ofloadOp().
-
nstoreOp
public static int nstoreOp(long struct)
Unsafe version ofstoreOp().
-
nstencilLoadOp
public static int nstencilLoadOp(long struct)
Unsafe version ofstencilLoadOp().
-
nstencilStoreOp
public static int nstencilStoreOp(long struct)
Unsafe version ofstencilStoreOp().
-
ninitialLayout
public static int ninitialLayout(long struct)
Unsafe version ofinitialLayout().
-
nfinalLayout
public static int nfinalLayout(long struct)
Unsafe version offinalLayout().
-
nflags
public static void nflags(long struct, int value)Unsafe version offlags.
-
nformat
public static void nformat(long struct, int value)Unsafe version offormat.
-
nsamples
public static void nsamples(long struct, int value)Unsafe version ofsamples.
-
nloadOp
public static void nloadOp(long struct, int value)Unsafe version ofloadOp.
-
nstoreOp
public static void nstoreOp(long struct, int value)Unsafe version ofstoreOp.
-
nstencilLoadOp
public static void nstencilLoadOp(long struct, int value)Unsafe version ofstencilLoadOp.
-
nstencilStoreOp
public static void nstencilStoreOp(long struct, int value)Unsafe version ofstencilStoreOp.
-
ninitialLayout
public static void ninitialLayout(long struct, int value)Unsafe version ofinitialLayout.
-
nfinalLayout
public static void nfinalLayout(long struct, int value)Unsafe version offinalLayout.
-
-