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

Vulkan.Core10.Enums.PrimitiveTopology

Synopsis

Documentation

newtype PrimitiveTopology Source #

VkPrimitiveTopology - Supported primitive topologies

Description

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 arrow points along an edge of the relevant primitive, following winding order. 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

PipelineInputAssemblyStateCreateInfo, cmdSetPrimitiveTopologyEXT

Constructors

PrimitiveTopology Int32 

Bundled Patterns

pattern PRIMITIVE_TOPOLOGY_POINT_LIST :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_POINT_LIST specifies a series of separate point primitives.

pattern PRIMITIVE_TOPOLOGY_LINE_LIST :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_LINE_LIST specifies a series of separate line primitives.

pattern PRIMITIVE_TOPOLOGY_LINE_STRIP :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_LINE_STRIP specifies a series of connected line primitives with consecutive lines sharing a vertex.

pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_TRIANGLE_LIST specifies a series of separate triangle primitives.

pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP specifies a series of connected triangle primitives with consecutive triangles sharing an edge.

pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_TRIANGLE_FAN specifies a series of connected triangle primitives with all triangles sharing a common vertex. If the VK_KHR_portability_subset extension is enabled, and PhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is FALSE, then triangle fans are not supported by the implementation, and PRIMITIVE_TOPOLOGY_TRIANGLE_FAN must not be used.

pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY specifies a series of separate line primitives with adjacency.

pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY specifies a series of connected line primitives with adjacency, with consecutive primitives sharing three vertices.

pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY specifies a series of separate triangle primitives with adjacency.

pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY specifies connected triangle primitives with adjacency, with consecutive triangles sharing an edge.

pattern PRIMITIVE_TOPOLOGY_PATCH_LIST :: PrimitiveTopology

PRIMITIVE_TOPOLOGY_PATCH_LIST specifies separate patch primitives.

Instances

Instances details
Eq PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology

Ord PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology

Read PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology

Show PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology

Storable PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology

Zero PrimitiveTopology Source # 
Instance details

Defined in Vulkan.Core10.Enums.PrimitiveTopology