vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

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

New Enums

New Enum Constants

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

Documentation

cmdSetLineStippleEXT Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("lineStippleFactor" ::: Word32)

lineStippleFactor is the repeat factor used in stippled line rasterization.

-> ("lineStipplePattern" ::: Word16)

lineStipplePattern is the bit pattern used in stippled line rasterization.

-> io () 

vkCmdSetLineStippleEXT - Set the dynamic line width state

Valid Usage

  • lineStippleFactor must be in the range [1,256]

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer 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

CommandBuffer

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

Bool32, StructureType

Constructors

PhysicalDeviceLineRasterizationFeaturesEXT 

Fields

Instances

Instances details
Eq PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Show PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Storable PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

FromCStruct PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

ToCStruct PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Zero PhysicalDeviceLineRasterizationFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

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

StructureType

Constructors

PhysicalDeviceLineRasterizationPropertiesEXT 

Fields

Instances

Instances details
Eq PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Show PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Storable PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

FromCStruct PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

ToCStruct PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Zero PhysicalDeviceLineRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

data PipelineRasterizationLineStateCreateInfoEXT Source #

VkPipelineRasterizationLineStateCreateInfoEXT - Structure specifying parameters of a newly created pipeline line rasterization state

Valid Usage

Valid Usage (Implicit)

See Also

Bool32, LineRasterizationModeEXT, StructureType

Constructors

PipelineRasterizationLineStateCreateInfoEXT 

Fields

Instances

Instances details
Eq PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Show PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Storable PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

FromCStruct PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

ToCStruct PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Zero PipelineRasterizationLineStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

newtype LineRasterizationModeEXT Source #

VkLineRasterizationModeEXT - Line rasterization modes

See Also

PipelineRasterizationLineStateCreateInfoEXT

Bundled Patterns

pattern LINE_RASTERIZATION_MODE_DEFAULT_EXT :: LineRasterizationModeEXT

LINE_RASTERIZATION_MODE_DEFAULT_EXT is equivalent to LINE_RASTERIZATION_MODE_RECTANGULAR_EXT if PhysicalDeviceLimits::strictLines is TRUE, otherwise lines are drawn as non-strictLines parallelograms. Both of these modes are defined in Basic Line Segment Rasterization.

pattern LINE_RASTERIZATION_MODE_RECTANGULAR_EXT :: LineRasterizationModeEXT

LINE_RASTERIZATION_MODE_RECTANGULAR_EXT specifies lines drawn as if they were rectangles extruded from the line

pattern LINE_RASTERIZATION_MODE_BRESENHAM_EXT :: LineRasterizationModeEXT

LINE_RASTERIZATION_MODE_BRESENHAM_EXT specifies lines drawn by determining which pixel diamonds the line intersects and exits, as defined in Bresenham Line Segment Rasterization.

pattern LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT :: LineRasterizationModeEXT

LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT specifies lines drawn if they were rectangles extruded from the line, with alpha falloff, as defined in Smooth Lines.

Instances

Instances details
Eq LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Ord LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Read LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Show LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Storable LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

Zero LineRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_line_rasterization

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 #