Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("lineStippleFactor" ::: Word32) |
|
-> ("lineStipplePattern" ::: Word16) |
|
-> io () |
vkCmdSetLineStippleEXT - Set the dynamic line width state
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 | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
data PhysicalDeviceLineRasterizationFeaturesEXT Source #
VkPhysicalDeviceLineRasterizationFeaturesEXT - Structure describing the line rasterization features that can be supported by an implementation
Members
The members of the PhysicalDeviceLineRasterizationFeaturesEXT
structure describe the following features:
Description
If the PhysicalDeviceLineRasterizationFeaturesEXT
structure is
included in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether the feature is supported.
PhysicalDeviceLineRasterizationFeaturesEXT
can also be included in
the pNext
chain of DeviceCreateInfo
to enable
the feature.
Valid Usage (Implicit)
See Also
Instances
data PhysicalDeviceLineRasterizationPropertiesEXT Source #
VkPhysicalDeviceLineRasterizationPropertiesEXT - Structure describing line rasterization properties supported by an implementation
Members
The members of the PhysicalDeviceLineRasterizationPropertiesEXT
structure describe the following implementation-dependent limits:
Description
If the PhysicalDeviceLineRasterizationPropertiesEXT
structure is
included in the pNext
chain of
PhysicalDeviceProperties2
,
it is filled with the implementation-dependent limits.
Valid Usage (Implicit)
See Also
PhysicalDeviceLineRasterizationPropertiesEXT | |
|
Instances
data PipelineRasterizationLineStateCreateInfoEXT Source #
VkPipelineRasterizationLineStateCreateInfoEXT - Structure specifying parameters of a newly created pipeline line rasterization state
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
PipelineRasterizationLineStateCreateInfoEXT | |
|
Instances
newtype LineRasterizationModeEXT Source #
VkLineRasterizationModeEXT - Line rasterization modes
See Also
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 #