Package org.lwjgl.vulkan
Class NVScissorExclusive
- java.lang.Object
-
- org.lwjgl.vulkan.NVScissorExclusive
-
public class NVScissorExclusive extends java.lang.Object
This extension adds support for an exclusive scissor test to Vulkan. The exclusive scissor test behaves like the scissor test, except that the exclusive scissor test fails for pixels inside the corresponding rectangle and passes for pixels outside the rectangle. If the same rectangle is used for both the scissor and exclusive scissor tests, the exclusive scissor test will pass if and only if the scissor test fails.- Name String
VK_NV_scissor_exclusive
- Extension Type
- Device extension
- Registered Extension Number
- 206
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
- Pat Brown nvpbrown
- Last Modified Date
- 2018-07-31
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- None
- Contributors
- Pat Brown, NVIDIA
- Jeff Bolz, NVIDIA
- Piers Daniell, NVIDIA
- Daniel Koch, NVIDIA
-
-
Field Summary
Fields Modifier and Type Field Description static int
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
ExtendsVkDynamicState
.static java.lang.String
VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME
The extension name.static int
VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION
The extension specification version.static int
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NVExtendsVkStructureType
.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
nvkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissors)
Unsafe version of:CmdSetExclusiveScissorNV
static void
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer, int firstExclusiveScissor, VkRect2D.Buffer pExclusiveScissors)
Set the dynamic exclusive scissor rectangles on a command buffer.
-
-
-
Field Detail
-
VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION
The extension specification version.
-
VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
ExtendsVkStructureType
.Enum values:
-
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
ExtendsVkDynamicState
.
-
-
Method Detail
-
nvkCmdSetExclusiveScissorNV
public static void nvkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissors)
Unsafe version of:CmdSetExclusiveScissorNV
- Parameters:
exclusiveScissorCount
- the number of exclusive scissor rectangles updated by the command.
-
vkCmdSetExclusiveScissorNV
public static void vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer, int firstExclusiveScissor, VkRect2D.Buffer pExclusiveScissors)
Set the dynamic exclusive scissor rectangles on a command buffer.C Specification
If the pipeline state object is created with
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
enabled, then the exclusive scissor rectangles are set by:void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
Description
The scissor rectangles taken from element
i
ofpExclusiveScissors
replace the current state for the scissor indexfirstExclusiveScissor + i
, fori
in[0, exclusiveScissorCount)
.Each scissor rectangle is described by a
VkRect2D
structure, with theoffset.x
andoffset.y
values determining the upper left corner of the scissor rectangle, and theextent.width
andextent.height
values determining the size in pixels.Valid Usage
- The exclusive scissor feature must be enabled.
- The bound graphics pipeline must have been created with the
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
dynamic state enabled firstExclusiveScissor
must be less thanVkPhysicalDeviceLimits
::maxViewports
- The sum of
firstExclusiveScissor
andexclusiveScissorCount
must be between 1 andVkPhysicalDeviceLimits
::maxViewports
, inclusive - If the multiple viewports feature is not enabled,
firstExclusiveScissor
must be 0 - If the multiple viewports feature is not enabled,
exclusiveScissorCount
must be 1 - The
x
andy
members ofoffset
in each member ofpExclusiveScissors
must be greater than or equal to 0 - Evaluation of
(offset.x + extent.width)
for each member ofpExclusiveScissors
must not cause a signed integer addition overflow - Evaluation of
(offset.y + extent.height)
for each member ofpExclusiveScissors
must not cause a signed integer addition overflow
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handlepExclusiveScissors
must be a valid pointer to an array ofexclusiveScissorCount
VkRect2D
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations exclusiveScissorCount
must be greater than 0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type Primary Secondary Both Graphics See Also
- Parameters:
commandBuffer
- the command buffer into which the command will be recorded.firstExclusiveScissor
- the index of the first exclusive scissor rectangle whose state is updated by the command.pExclusiveScissors
- a pointer to an array ofVkRect2D
structures defining exclusive scissor rectangles.
-
-