| 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_VERSIONExtending
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)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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
lineRasterizationModeisLINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled
-
If
lineRasterizationModeisLINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled -
If
lineRasterizationModeisLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled -
If
stippledLineEnableisTRUEandlineRasterizationModeisLINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled -
If
stippledLineEnableisTRUEandlineRasterizationModeisLINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled -
If
stippledLineEnableisTRUEandlineRasterizationModeisLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled -
If
stippledLineEnableisTRUEandlineRasterizationModeisLINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled andPhysicalDeviceLimits::strictLinesmust beTRUE
Valid Usage (Implicit)
-
lineRasterizationModemust be a validLineRasterizationModeEXTvalue
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 #