| Copyright | (c) Sven Panne 2002-2019 Tobias Markus 2016 |
|---|---|
| License | BSD3 |
| Maintainer | Sven Panne <svenpanne@gmail.com> |
| Stability | stable |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Graphics.Rendering.OpenGL.GL.PrimitiveMode
Description
This module corresponds to section 10.1 (Primitive Types) of the OpenGL 4.4 specs.
Primitive Modes
data PrimitiveMode Source #
Specification of the way the vertices given during renderPrimitive are interpreted. In the description of the constructors, n is an integer count starting at one, and N is the total number of vertices specified.
Constructors
| Points | Treats each vertex as a single point. Vertex n defines point n. N points are drawn. |
| Lines | Treats each pair of vertices as an independent line segment. Vertices 2n-1 and 2n define line n. N/2 lines are drawn. |
| LineLoop | Draws a connected group of line segments from the first vertex to the last, then back to the first. Vertices n and n+1 define line n. The last line, however, is defined by vertices N and 1. N lines are drawn. |
| LineStrip | Draws a connected group of line segments from the first vertex to the last. Vertices n and n+1 define line n. N-1 lines are drawn. |
| Triangles | Treats each triplet of vertices as an independent triangle. Vertices 3n-2, 3n-1, and 3n define triangle n. N/3 triangles are drawn. |
| TriangleStrip | Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. For odd n, vertices n, n+1, and n+2 define triangle n. For even n, vertices n+1, n, and n+2 define triangle n. N-2 triangles are drawn. |
| TriangleFan | Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. Vertices 1, n+1, and n+2 define triangle n. N-2 triangles are drawn. |
| Quads | Treats each group of four vertices as an independent quadrilateral. Vertices 4n-3, 4n-2, 4n-1, and 4n define quadrilateral n. N/4 quadrilaterals are drawn. |
| QuadStrip | Draws a connected group of quadrilaterals. One quadrilateral is defined for each pair of vertices presented after the first pair. Vertices 2n-1, 2n, 2n+2, and 2n+1 define quadrilateral n. N/2-1 quadrilaterals are drawn. Note that the order in which vertices are used to construct a quadrilateral from strip data is different from that used with independent data. |
| Polygon | Draws a single, convex polygon. Vertices 1 through N define this polygon. |
| Patches | Only used in conjunction with tessellation. The number of vertices per patch can be set with |
Instances
| Eq PrimitiveMode Source # | |
Defined in Graphics.Rendering.OpenGL.GL.PrimitiveMode Methods (==) :: PrimitiveMode -> PrimitiveMode -> Bool # (/=) :: PrimitiveMode -> PrimitiveMode -> Bool # | |
| Ord PrimitiveMode Source # | |
Defined in Graphics.Rendering.OpenGL.GL.PrimitiveMode Methods compare :: PrimitiveMode -> PrimitiveMode -> Ordering # (<) :: PrimitiveMode -> PrimitiveMode -> Bool # (<=) :: PrimitiveMode -> PrimitiveMode -> Bool # (>) :: PrimitiveMode -> PrimitiveMode -> Bool # (>=) :: PrimitiveMode -> PrimitiveMode -> Bool # max :: PrimitiveMode -> PrimitiveMode -> PrimitiveMode # min :: PrimitiveMode -> PrimitiveMode -> PrimitiveMode # | |
| Show PrimitiveMode Source # | |
Defined in Graphics.Rendering.OpenGL.GL.PrimitiveMode Methods showsPrec :: Int -> PrimitiveMode -> ShowS # show :: PrimitiveMode -> String # showList :: [PrimitiveMode] -> ShowS # | |
Patches (Tessellation)
patchVertices :: StateVar GLsizei Source #
patchVertices is the number of vertices per patch primitive.
An InvalidValue is generated if patchVertices is set to a value less than or equal to zero or greater than the implementation-dependent maximum value maxPatchVertices.
maxPatchVertices :: GettableStateVar GLsizei Source #
Contains the maximumum number of vertices in a single patch.
patchDefaultOuterLevel :: StateVar (GLfloat, GLfloat, GLfloat, GLfloat) Source #
Contains the four default outer tessellation levels to be used when no tessellation control shader is present.
patchDefaultInnerLevel :: StateVar (GLfloat, GLfloat) Source #
Contains the two default inner tessellation levels to be used when no tessellation control shader is present.
maxTessGenLevel :: GettableStateVar GLsizei Source #
Contains the maximum allowed tessellation level.