| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.Enums.PrimitiveTopology
Synopsis
- newtype PrimitiveTopology where
- PrimitiveTopology Int32
- pattern PRIMITIVE_TOPOLOGY_POINT_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_STRIP :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_PATCH_LIST :: PrimitiveTopology
Documentation
newtype PrimitiveTopology Source #
VkPrimitiveTopology - Supported primitive topologies
Description
PRIMITIVE_TOPOLOGY_POINT_LISTspecifies a series of separate point primitives.
PRIMITIVE_TOPOLOGY_LINE_LISTspecifies a series of separate line primitives.PRIMITIVE_TOPOLOGY_LINE_STRIPspecifies a series of connected line primitives with consecutive lines sharing a vertex.PRIMITIVE_TOPOLOGY_TRIANGLE_LISTspecifies a series of separate triangle primitives.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIPspecifies a series of connected triangle primitives with consecutive triangles sharing an edge.PRIMITIVE_TOPOLOGY_TRIANGLE_FANspecifies a series of connected triangle primitives with all triangles sharing a common vertex. If theVK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFansisFALSE, then triangle fans are not supported by the implementation, andPRIMITIVE_TOPOLOGY_TRIANGLE_FANmust not be used.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCYspecifies a series of separate line primitives with adjacency.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCYspecifies a series of connected line primitives with adjacency, with consecutive primitives sharing three vertices.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYspecifies a series of separate triangle primitives with adjacency.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCYspecifies connected triangle primitives with adjacency, with consecutive triangles sharing an edge.PRIMITIVE_TOPOLOGY_PATCH_LISTspecifies separate patch primitives.
Each primitive topology, and its construction from a list of vertices, is described in detail below with a supporting diagram, according to the following key:
| Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. | |
| Vertex Number | Sequence position of a vertex within the provided vertex data. | |
| Provoking Vertex | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in flat shading. | |
| Primitive Edge | An edge connecting the points of a main primitive. | |
| Adjacency Edge | Points connected by these lines do not contribute to a main primitive, and are only accessible in a geometry shader. | |
| Winding Order | The relative order in which vertices are defined within a primitive, used in the facing determination. This ordering has no specific start or end point. |
The diagrams are supported with mathematical definitions where the vertices (v) and primitives (p) are numbered starting from 0; v0 is the first vertex in the provided data and p0 is the first primitive in the set of primitives defined by the vertices and topology.
See Also
VK_VERSION_1_0,
PipelineInputAssemblyStateCreateInfo,
cmdSetPrimitiveTopology,
cmdSetPrimitiveTopology
Constructors
| PrimitiveTopology Int32 |
Bundled Patterns