Top Description Inners Fields Constructors Methods
org.lwjgl.vulkan

public Class VkFrameBoundaryEXT

extends Struct<VkFrameBoundaryEXT>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Add frame boundary information to queue submissions.
Description

The application can associate frame boundary information to a queue submission call by adding a VkFrameBoundaryEXT structure to the pNext chain of queue submission, VkPresentInfoKHR, or VkBindSparseInfo.

The frame identifier is used to associate one or more queue submission to a frame, it is thus meant to be unique within a frame lifetime, i.e. it is possible (but not recommended) to reuse frame identifiers, as long as any two frames with any chance of having overlapping queue submissions (as in the example above) use two different frame identifiers.

Note

Since the concept of frame is application-dependent, there is no way to validate the use of frame identifier. It is good practice to use a monotonically increasing counter as the frame identifier and not reuse identifiers between frames.

The pImages and pBuffers arrays contain a list of images and buffers which store the "end result" of the frame. As the concept of frame is application-dependent, not all frames may produce their results in images or buffers, yet this is a sufficiently common case to be handled by VkFrameBoundaryEXT. Note that no extra information, such as image layout is being provided, since the images are meant to be used by tools which would already be tracking this required information. Having the possibility of passing a list of end-result images makes VkFrameBoundaryEXT as expressive as QueuePresentKHR, which is often the default frame boundary delimiter.

The application can also associate arbitrary extra information via tag data using tagName, tagSize and pTag. This extra information is typically tool-specific.

Valid Usage (Implicit)

Layout


struct VkFrameBoundaryEXT {
    VkStructureType sType;
    void const * pNext;
    VkFrameBoundaryFlagsEXT flags;
    uint64_t frameID;
    uint32_t imageCount;
    VkImage const * pImages;
    uint32_t bufferCount;
    VkBuffer const * pBuffers;
    uint64_t tagName;
    size_t tagSize;
    void const * pTag;
}

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
BUFFERCOUNT

The struct member offsets.

public static final int
FLAGS

The struct member offsets.

public static final int
FRAMEID

The struct member offsets.

public static final int
IMAGECOUNT

The struct member offsets.

public static final int
PBUFFERS

The struct member offsets.

public static final int
PIMAGES

The struct member offsets.

public static final int
PNEXT

The struct member offsets.

public static final int
PTAG

The struct member offsets.

public static final int
SIZEOF

The struct size in bytes.

public static final int
STYPE

The struct member offsets.

public static final int
TAGNAME

The struct member offsets.

public static final int
TAGSIZE

The struct member offsets.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

AccessConstructor and Description
protected
VkFrameBoundaryEXT(long address, ByteBuffer container)

public
VkFrameBoundaryEXT(ByteBuffer container)

Creates a VkFrameBoundaryEXT instance at the current position of the specified ByteBuffer container.

Method Summary

Modifier and TypeMethod and Description
public int
bufferCount()

the number of buffers the store the frame results.

public VkFrameBoundaryEXT
bufferCount(int value)

Sets the specified value to the bufferCount field.

public static VkFrameBoundaryEXT
calloc()

Returns a new VkFrameBoundaryEXT instance allocated with memCalloc.

public static VkFrameBoundaryEXT.Buffer
calloc(int
the buffer capacity
capacity
)

Returns a new VkFrameBoundaryEXT.Buffer instance allocated with memCalloc.

public static VkFrameBoundaryEXT
calloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkFrameBoundaryEXT instance allocated on the specified MemoryStack and initializes all its bits to zero.

public static VkFrameBoundaryEXT.Buffer
calloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkFrameBoundaryEXT.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

protected VkFrameBoundaryEXT
create(long
the struct memory address
address
,
ByteBuffer
an optional container buffer, to be referenced strongly by the struct instance.
container
)

Implements abstract org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.
public static VkFrameBoundaryEXT
create()

Returns a new VkFrameBoundaryEXT instance allocated with BufferUtils.

public static VkFrameBoundaryEXT
create(long address)

Returns a new VkFrameBoundaryEXT instance for the specified memory address.

public static VkFrameBoundaryEXT.Buffer
create(int
the buffer capacity
capacity
)

Returns a new VkFrameBoundaryEXT.Buffer instance allocated with BufferUtils.

public static VkFrameBoundaryEXT.Buffer
create(long
the memory address
address
,
int
the buffer capacity
capacity
)

Create a VkFrameBoundaryEXT.Buffer instance at the specified memory.

public static VkFrameBoundaryEXT
createSafe(long address)

Like create, but returns null if address is NULL.

public static VkFrameBoundaryEXT.Buffer
createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

public int
flags()

a bitmask of VkFrameBoundaryFlagBitsEXT that can flag the last submission of a frame identifier.

public VkFrameBoundaryEXT
flags(int value)

Sets the specified value to the flags field.

public long
frameID()

the frame identifier.

public VkFrameBoundaryEXT
frameID(long value)

Sets the specified value to the frameID field.

public int
imageCount()

the number of images that store frame results.

public VkFrameBoundaryEXT
imageCount(int value)

Sets the specified value to the imageCount field.

public static VkFrameBoundaryEXT
malloc()

Returns a new VkFrameBoundaryEXT instance allocated with memAlloc.

public static VkFrameBoundaryEXT.Buffer
malloc(int
the buffer capacity
capacity
)

Returns a new VkFrameBoundaryEXT.Buffer instance allocated with memAlloc.

public static VkFrameBoundaryEXT
malloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkFrameBoundaryEXT instance allocated on the specified MemoryStack.

public static VkFrameBoundaryEXT.Buffer
malloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkFrameBoundaryEXT.Buffer instance allocated on the specified MemoryStack.

public static int
nbufferCount(long struct)

Unsafe version of bufferCount.

public static void
nbufferCount(long struct, int value)

Sets the specified value to the bufferCount field of the specified struct.

public static int
nflags(long struct)

Unsafe version of flags.

public static void
nflags(long struct, int value)

Unsafe version of flags.

public static long
nframeID(long struct)

Unsafe version of frameID.

public static void
nframeID(long struct, long value)

Unsafe version of frameID.

public static int
nimageCount(long struct)

Unsafe version of imageCount.

public static void
nimageCount(long struct, int value)

Sets the specified value to the imageCount field of the specified struct.

public static LongBuffer
npBuffers(long struct)

Unsafe version of pBuffers.

public static void
npBuffers(long struct, LongBuffer value)

Unsafe version of pBuffers.

public static LongBuffer
npImages(long struct)

Unsafe version of pImages.

public static void
npImages(long struct, LongBuffer value)

Unsafe version of pImages.

public static long
npNext(long struct)

Unsafe version of pNext.

public static void
npNext(long struct, long value)

Unsafe version of pNext.

public static long
npTag(long struct)

Unsafe version of pTag.

public static void
npTag(long struct, long value)

Unsafe version of pTag.

public static int
nsType(long struct)

Unsafe version of sType.

public static void
nsType(long struct, int value)

Unsafe version of sType.

public static long
ntagName(long struct)

Unsafe version of tagName.

public static void
ntagName(long struct, long value)

Unsafe version of tagName.

public static long
ntagSize(long struct)

Unsafe version of tagSize.

public static void
ntagSize(long struct, long value)

Unsafe version of tagSize.

public LongBuffer
pBuffers()

a pointer to an array of VkBuffer objects with bufferCount entries.

public VkFrameBoundaryEXT
pBuffers(LongBuffer value)

Sets the address of the specified LongBuffer to the pBuffers field.

public LongBuffer
pImages()

a pointer to an array of VkImage objects with imageCount entries.

public VkFrameBoundaryEXT
pImages(LongBuffer value)

Sets the address of the specified LongBuffer to the pImages field.

public long
pNext()

NULL or a pointer to a structure extending this structure.

public VkFrameBoundaryEXT
pNext(long value)

Sets the specified value to the pNext field.

public long
pTag()

a pointer to an array of tagSize bytes containing tag data.

public VkFrameBoundaryEXT
pTag(long value)

Sets the specified value to the pTag field.

public VkFrameBoundaryEXT
set(int sType, long pNext, int flags, long frameID, int imageCount, LongBuffer pImages, int bufferCount, LongBuffer pBuffers, long tagName, long tagSize, long pTag)

Initializes this struct with the specified values.

public VkFrameBoundaryEXT

Returns:

this struct
set
(VkFrameBoundaryEXT
the source struct
src
)

Copies the specified struct data to this struct.

public int
sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).
public int
sType()

a VkStructureType value identifying this structure.

public VkFrameBoundaryEXT
sType(int value)

Sets the specified value to the sType field.

public VkFrameBoundaryEXT
public long
tagName()

a numerical identifier for tag data.

public VkFrameBoundaryEXT
tagName(long value)

Sets the specified value to the tagName field.

public long
tagSize()

the number of bytes of tag data.

public VkFrameBoundaryEXT
tagSize(long value)

Sets the specified value to the tagSize field.

Inherited from org.lwjgl.system.Struct:
__array__array__array__checkContainer__checkMalloc__create__getContainer__getContainer__member__member__member__padding__padding__struct__struct__union__unionclearfreeisNullvalidate