If the pNext chain of VkCommandBufferInheritanceInfo includes a VkCommandBufferInheritanceViewportScissorInfoNV structure, then that structure controls whether a command buffer can inherit the following state from other command buffers:
DYNAMIC_STATE_SCISSORDYNAMIC_STATE_SCISSOR_WITH_COUNTDYNAMIC_STATE_DISCARD_RECTANGLE_EXTDYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXTDYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXTas well as the following state, with restrictions on inherited depth values and viewport count:
If viewportScissor2D is FALSE, then the command buffer does not inherit the listed dynamic state, and should set this state itself. If this structure is not present, the behavior is as if viewportScissor2D is FALSE.
If viewportScissor2D is TRUE, then the listed dynamic state is inherited, and the command buffer must not set this state, except that the viewport and scissor count may be set by binding a graphics pipeline that does not specify this state as dynamic.
Due to this restriction, applications should ensure either all or none of the graphics pipelines bound in this secondary command buffer use dynamic viewport/scissor counts.
When the command buffer is executed as part of a the execution of a CmdExecuteCommands command, the inherited state (if enabled) is determined by the following procedure, performed separately for each dynamic state, and separately for each value for dynamic state that consists of multiple values (e.g. multiple viewports).
i being the index of the executed command buffer in the pCommandBuffers array of CmdExecuteCommands, if i > 0 and any secondary command buffer from index 0 to i-1 modifies the state, the inherited state is provisionally set to the final value set by the last such secondary command buffer. Binding a graphics pipeline defining the state statically is equivalent to setting the state to an undefined value.CmdExecuteCommands command was recorded; if the state is undefined, then so is the provisional inherited state.n being its viewport index, then if n ≥ viewportDepthCount, or if either VkViewport::minDepth or VkViewport::maxDepth are not equal to the respective values of the nth element of pViewportDepths, then the state is not inherited.There is no support for inheriting dynamic state from a secondary command buffer executed as part of a different vkCmdExecuteCommands command.
inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be FALSEmultiViewport feature is not enabled and viewportScissor2D is TRUE, then viewportDepthCount must be 1viewportScissor2D is TRUE, then viewportDepthCount must be greater than 0viewportScissor2D is TRUE, then pViewportDepths must be a valid pointer to an array of viewportDepthCount valid VkViewport structures, except any requirements on x, y, width, and height do not applyviewportScissor2D is TRUE, then the command buffer must be recorded with the COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
struct VkCommandBufferInheritanceViewportScissorInfoNV {
VkStructureType sType;
void const * pNext;
VkBool32 viewportScissor2D;
uint32_t viewportDepthCount;
VkViewport const * pViewportDepths;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PVIEWPORTDEPTHS
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 | VIEWPORTDEPTHCOUNT
The struct member offsets. |
| public static final int | VIEWPORTSCISSOR2D
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkCommandBufferInheritanceViewportScissorInfoNV(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV | |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| protected VkCommandBufferInheritanceViewportScissorInfoNV | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkCommandBufferInheritanceViewportScissorInfoNV | create()
Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV | create(long address)
Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | create(int
the buffer capacity capacity)Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkCommandBufferInheritanceViewportScissorInfoNV | |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | |
| public static VkCommandBufferInheritanceViewportScissorInfoNV | |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkCommandBufferInheritanceViewportScissorInfoNV. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static long | |
| public static void | |
| public static VkViewport | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public long | |
| public VkCommandBufferInheritanceViewportScissorInfoNV | |
| public VkViewport | pViewportDepths()
a pointer to a |
| public VkCommandBufferInheritanceViewportScissorInfoNV | pViewportDepths(VkViewport value)
Sets the address of the specified |
| public VkCommandBufferInheritanceViewportScissorInfoNV | set(int sType, long pNext, boolean viewportScissor2D, int viewportDepthCount, VkViewport pViewportDepths)
Initializes this struct with the specified values. |
| public VkCommandBufferInheritanceViewportScissorInfoNV | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkCommandBufferInheritanceViewportScissorInfoNV | |
| public VkCommandBufferInheritanceViewportScissorInfoNV | sType$Default()
Sets the |
| public int | |
| public VkCommandBufferInheritanceViewportScissorInfoNV | |
| public boolean | |
| public VkCommandBufferInheritanceViewportScissorInfoNV |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| PVIEWPORTDEPTHS | back to summary |
|---|---|
| public static final int PVIEWPORTDEPTHS The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| VIEWPORTDEPTHCOUNT | back to summary |
|---|---|
| public static final int VIEWPORTDEPTHCOUNT The struct member offsets. | |
| VIEWPORTSCISSOR2D | back to summary |
|---|---|
| public static final int VIEWPORTSCISSOR2D The struct member offsets. | |
| VkCommandBufferInheritanceViewportScissorInfoNV | back to summary |
|---|---|
| protected VkCommandBufferInheritanceViewportScissorInfoNV(long address, ByteBuffer container) | |
| VkCommandBufferInheritanceViewportScissorInfoNV | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| calloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Returns a new
| |
| create | back to summary |
|---|---|
| protected VkCommandBufferInheritanceViewportScissorInfoNV create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Create a
| |
| createSafe | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Like
| |
| malloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkCommandBufferInheritanceViewportScissorInfoNV. Returns a new
| |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| npViewportDepths | back to summary |
|---|---|
| public static VkViewport npViewportDepths(long struct) Unsafe version of
| |
| npViewportDepths | back to summary |
|---|---|
| public static void npViewportDepths(long struct, VkViewport value) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| nviewportDepthCount | back to summary |
|---|---|
| public static int nviewportDepthCount(long struct) Unsafe version of | |
| nviewportDepthCount | back to summary |
|---|---|
| public static void nviewportDepthCount(long struct, int value) Unsafe version of | |
| nviewportScissor2D | back to summary |
|---|---|
| public static int nviewportScissor2D(long struct) Unsafe version of | |
| nviewportScissor2D | back to summary |
|---|---|
| public static void nviewportScissor2D(long struct, int value) Unsafe version of | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV pNext(long value) Sets the specified value to the | |
| pViewportDepths | back to summary |
|---|---|
| public VkViewport pViewportDepths() a pointer to a
| |
| pViewportDepths | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV pViewportDepths(VkViewport value) Sets the address of the specified | |
| set | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV set(int sType, long pNext, boolean viewportScissor2D, int viewportDepthCount, VkViewport pViewportDepths) Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV set(VkCommandBufferInheritanceViewportScissorInfoNV src) Copies the specified struct data to this struct.
| |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV sType$Default() Sets the | |
| viewportDepthCount | back to summary |
|---|---|
| public int viewportDepthCount() specifies the maximum number of viewports to inherit. When
| |
| viewportDepthCount | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV viewportDepthCount(int value) Sets the specified value to the | |
| viewportScissor2D | back to summary |
|---|---|
| public boolean viewportScissor2D() specifies whether the listed dynamic state is inherited.
| |
| viewportScissor2D | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV viewportScissor2D(boolean value) Sets the specified value to the | |
VkCommandBufferInheritanceViewportScissorInfoNV structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkCommandBufferInheritanceViewportScissorInfoNV |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkCommandBufferInheritanceViewportScissorInfoNV ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| getElementFactory | back to summary |
|---|---|
| protected VkCommandBufferInheritanceViewportScissorInfoNV getElementFactory() Implements abstract org.
| |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the specified value to the | |
| pViewportDepths | back to summary |
|---|---|
public VkViewport pViewportDepths()
| |
| pViewportDepths | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the address of the specified | |
| self | back to summary |
|---|---|
| protected VkCommandBufferInheritanceViewportScissorInfoNV. Implements abstract org.
| |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the | |
| viewportDepthCount | back to summary |
|---|---|
public int viewportDepthCount()
| |
| viewportDepthCount | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the specified value to the | |
| viewportScissor2D | back to summary |
|---|---|
public boolean viewportScissor2D()
| |
| viewportScissor2D | back to summary |
|---|---|
| public VkCommandBufferInheritanceViewportScissorInfoNV. Sets the specified value to the | |