Safe Haskell | None |
---|---|
Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_line_rasterization
Description
Name
VK_EXT_line_rasterization - device extension
VK_EXT_line_rasterization
- Name String
VK_EXT_line_rasterization
- Extension Type
- Device extension
- Registered Extension Number
- 260
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Special Use
- Contact
Other Extension Metadata
- Last Modified Date
- 2019-05-09
- IP Status
- No known IP claims.
- Contributors
- Jeff Bolz, NVIDIA
- Allen Jensen, NVIDIA
- Jason Ekstrand, Intel
Description
This extension adds some line rasterization features that are commonly used in CAD applications and supported in other APIs like OpenGL. Bresenham-style line rasterization is supported, smooth rectangular lines (coverage to alpha) are supported, and stippled lines are supported for all three line rasterization modes.
New Commands
New Structures
Extending
PhysicalDeviceProperties2
:Extending
PipelineRasterizationStateCreateInfo
:
New Enums
New Enum Constants
EXT_LINE_RASTERIZATION_SPEC_VERSION
Extending
DynamicState
:Extending
StructureType
:
Issues
(1) Do we need to support Bresenham-style and smooth lines with more than one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than one sample?
RESOLVED: Yes. For simplicity, Bresenham line rasterization carries forward a few restrictions from OpenGL, such as not supporting per-sample shading, alpha to coverage, or alpha to one.
Version History
Revision 1, 2019-05-09 (Jeff Bolz)
- Initial draft
See Also
LineRasterizationModeEXT
,
PhysicalDeviceLineRasterizationFeaturesEXT
,
PhysicalDeviceLineRasterizationPropertiesEXT
,
PipelineRasterizationLineStateCreateInfoEXT
, cmdSetLineStippleEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- cmdSetLineStippleEXT :: forall io. MonadIO io => CommandBuffer -> ("lineStippleFactor" ::: Word32) -> ("lineStipplePattern" ::: Word16) -> io ()
- data PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeaturesEXT {}
- data PhysicalDeviceLineRasterizationPropertiesEXT = PhysicalDeviceLineRasterizationPropertiesEXT {}
- data PipelineRasterizationLineStateCreateInfoEXT = PipelineRasterizationLineStateCreateInfoEXT {}
- newtype LineRasterizationModeEXT where
- LineRasterizationModeEXT Int32
- pattern LINE_RASTERIZATION_MODE_DEFAULT_EXT :: LineRasterizationModeEXT
- pattern LINE_RASTERIZATION_MODE_RECTANGULAR_EXT :: LineRasterizationModeEXT
- pattern LINE_RASTERIZATION_MODE_BRESENHAM_EXT :: LineRasterizationModeEXT
- pattern LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT :: LineRasterizationModeEXT
- type EXT_LINE_RASTERIZATION_SPEC_VERSION = 1
- pattern EXT_LINE_RASTERIZATION_SPEC_VERSION :: forall a. Integral a => a
- type EXT_LINE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_line_rasterization"
- pattern EXT_LINE_RASTERIZATION_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
Arguments
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("lineStippleFactor" ::: Word32) |
|
-> ("lineStipplePattern" ::: Word16) |
|
-> io () |
vkCmdSetLineStippleEXT - Set line stipple dynamically for a command buffer
Description
This command sets the line stipple state for subsequent drawing commands
when the graphics pipeline is created with
DYNAMIC_STATE_LINE_STIPPLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Otherwise, this state is specified by the
PipelineRasterizationLineStateCreateInfoEXT
::lineStippleFactor
and
PipelineRasterizationLineStateCreateInfoEXT
::lineStipplePattern
values used to create the currently active pipeline.
Valid Usage
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types |
---|---|---|
Primary Secondary | Both | Graphics |
See Also
data PhysicalDeviceLineRasterizationFeaturesEXT Source #
VkPhysicalDeviceLineRasterizationFeaturesEXT - Structure describing the line rasterization features that can be supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceLineRasterizationFeaturesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceLineRasterizationFeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
Instances
data PhysicalDeviceLineRasterizationPropertiesEXT Source #
VkPhysicalDeviceLineRasterizationPropertiesEXT - Structure describing line rasterization properties supported by an implementation
Description
If the PhysicalDeviceLineRasterizationPropertiesEXT
structure is
included in the pNext
chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2
,
it is filled in with each corresponding implementation-dependent
property.
Valid Usage (Implicit)
See Also
Constructors
PhysicalDeviceLineRasterizationPropertiesEXT | |
Fields
|
Instances
data PipelineRasterizationLineStateCreateInfoEXT Source #
VkPipelineRasterizationLineStateCreateInfoEXT - Structure specifying parameters of a newly created pipeline line rasterization state
Description
If stippledLineEnable
is FALSE
, the
values of lineStippleFactor
and lineStipplePattern
are ignored.
Valid Usage
-
If
lineRasterizationMode
isLINE_RASTERIZATION_MODE_RECTANGULAR_EXT
, then the rectangularLines feature must be enabled
-
If
lineRasterizationMode
isLINE_RASTERIZATION_MODE_BRESENHAM_EXT
, then the bresenhamLines feature must be enabled -
If
lineRasterizationMode
isLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
, then the smoothLines feature must be enabled -
If
stippledLineEnable
isTRUE
andlineRasterizationMode
isLINE_RASTERIZATION_MODE_RECTANGULAR_EXT
, then the stippledRectangularLines feature must be enabled -
If
stippledLineEnable
isTRUE
andlineRasterizationMode
isLINE_RASTERIZATION_MODE_BRESENHAM_EXT
, then the stippledBresenhamLines feature must be enabled -
If
stippledLineEnable
isTRUE
andlineRasterizationMode
isLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
, then the stippledSmoothLines feature must be enabled -
If
stippledLineEnable
isTRUE
andlineRasterizationMode
isLINE_RASTERIZATION_MODE_DEFAULT_EXT
, then the stippledRectangularLines feature must be enabled andPhysicalDeviceLimits
::strictLines
must beTRUE
Valid Usage (Implicit)
-
lineRasterizationMode
must be a validLineRasterizationModeEXT
value
See Also
VK_EXT_line_rasterization,
Bool32
, LineRasterizationModeEXT
,
StructureType
Constructors
PipelineRasterizationLineStateCreateInfoEXT | |
Fields
|
Instances
newtype LineRasterizationModeEXT Source #
VkLineRasterizationModeEXT - Line rasterization modes
See Also
VK_EXT_line_rasterization,
PipelineRasterizationLineStateCreateInfoEXT
Constructors
LineRasterizationModeEXT Int32 |
Bundled Patterns
Instances
type EXT_LINE_RASTERIZATION_SPEC_VERSION = 1 Source #
pattern EXT_LINE_RASTERIZATION_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_LINE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_line_rasterization" Source #
pattern EXT_LINE_RASTERIZATION_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #