Enum glium::index::PrimitiveType
source · pub enum PrimitiveType {
Points,
LinesList,
LinesListAdjacency,
LineStrip,
LineStripAdjacency,
LineLoop,
TrianglesList,
TrianglesListAdjacency,
TriangleStrip,
TriangleStripAdjacency,
TriangleFan,
Patches {
vertices_per_patch: u16,
},
}
Expand description
List of available primitives.
See this page for a visual representation of each primitive type.
Variants§
Points
Each vertex is an invidiual point.
LinesList
Vertices are grouped by chunks of two vertices. Each chunk represents a line.
LinesListAdjacency
Vertices are grouped by chunks of four vertices. The second and third vertices of each chunk represents the line.
Adjacency information doesn’t do anything per-se, but is passed to the geometry shader if there is any. The first vertex represents the vertex adjacent to the second vertex. The fourth vertex represents the vertex adjacent to the third vertex.
LineStrip
Each vertex (except the last one) forms a line with the next vertex.
For example vertices 0 and 1 form a line, vertices 1 and 2 form a line, vertices 2 and 3 form a line, etc.
LineStripAdjacency
Similar to LineStrip
, but with an additional vertex at the beginning and at the end
that represent the vertices adjacent to the first and last ones.
Adjacency information doesn’t do anything per-se, but is passed to the geometry shader if there is any.
LineLoop
Each vertex forms a line with the next vertex. The last vertex form a line with the first one.
TrianglesList
Vertices are grouped by chunks of three vertices. Each chunk represents a triangle.
The order of the vertices is important, as it determines whether the triangle will be
clockwise or counter-clockwise. See BackfaceCulling
for more infos.
TrianglesListAdjacency
Vertices are grouped by chunks of six vertices. The first, third and fifth vertices represent a triangle.
The order of the vertices is important, as it determines whether the triangle will be
clockwise or counter-clockwise. See BackfaceCulling
for more infos.
Adjacency information doesn’t do anything per-se, but is passed to the geometry shader if there is any. The second vertex represents the vertex adjacent to the first and third vertices. The fourth vertex represents the vertex adjacent to the third and fifth vertices. The sixth vertex represents the vertex adjacent to the first and fifth vertices.
TriangleStrip
Each vertex (except the first one and the last one) forms a triangle with the previous and the next vertices.
For example vertices 0, 1, 2
form a triangle, 1, 2, 3
form a triangle, 2, 3, 4
form a
triangle, 3, 4, 5
form a triangle, etc.
Each uneven triangle is reversed so that all triangles are facing the same direction.
TriangleStripAdjacency
Each even vertex forms a triangle with vertices n+2
and n+4
.
Each uneven vertex is adjacent to the previous and next ones. Adjacency information doesn’t do anything per-se, but is passed to the geometry shader if there is any.
TriangleFan
Starting at the second vertex, each vertex forms a triangle with the next and the first vertices.
For example vertices 0, 1, 2
form a triangle, 0, 2, 3
form a triangle, 0, 3, 4
form a
triangle, 0, 4, 5
form a triangle, etc.
Patches
Vertices are grouped by chunks of vertices_per_patch
vertices.
This primitives type can only be used in conjunction with a tessellation shader. The tessellation shader will indicate how each patch will be divided into lines or triangles.
Implementations§
source§impl PrimitiveType
impl PrimitiveType
sourcepub fn is_supported<C>(&self, caps: &C) -> boolwhere
C: CapabilitiesSource,
pub fn is_supported<C>(&self, caps: &C) -> boolwhere C: CapabilitiesSource,
Returns true if the backend supports this type of primitives.
Trait Implementations§
source§impl Clone for PrimitiveType
impl Clone for PrimitiveType
source§fn clone(&self) -> PrimitiveType
fn clone(&self) -> PrimitiveType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PrimitiveType
impl Debug for PrimitiveType
source§impl PartialEq<PrimitiveType> for PrimitiveType
impl PartialEq<PrimitiveType> for PrimitiveType
source§fn eq(&self, other: &PrimitiveType) -> bool
fn eq(&self, other: &PrimitiveType) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for PrimitiveType
impl Eq for PrimitiveType
impl StructuralEq for PrimitiveType
impl StructuralPartialEq for PrimitiveType
Auto Trait Implementations§
impl RefUnwindSafe for PrimitiveType
impl Send for PrimitiveType
impl Sync for PrimitiveType
impl Unpin for PrimitiveType
impl UnwindSafe for PrimitiveType
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Content for Twhere
T: Copy,
impl<T> Content for Twhere T: Copy,
source§fn read<F, E>(size: usize, f: F) -> Result<T, E>where
F: FnOnce(&mut T) -> Result<(), E>,
fn read<F, E>(size: usize, f: F) -> Result<T, E>where F: FnOnce(&mut T) -> Result<(), E>,
Owned
.