module Graphics.Rendering.OpenGL.GL.PrimitiveModeInternal (
marshalPrimitiveMode, unmarshalPrimitiveMode
) where
import Graphics.Rendering.OpenGL.Raw
import Graphics.Rendering.OpenGL.GL.PrimitiveMode
marshalPrimitiveMode :: PrimitiveMode -> GLenum
marshalPrimitiveMode x = case x of
Points -> gl_POINTS
Lines -> gl_LINES
LineLoop -> gl_LINE_LOOP
LineStrip -> gl_LINE_STRIP
Triangles -> gl_TRIANGLES
TriangleStrip -> gl_TRIANGLE_STRIP
TriangleFan -> gl_TRIANGLE_FAN
Quads -> gl_QUADS
QuadStrip -> gl_QUAD_STRIP
Polygon -> gl_POLYGON
Patches -> gl_PATCHES
unmarshalPrimitiveMode :: GLenum -> PrimitiveMode
unmarshalPrimitiveMode x
| x == gl_POINTS = Points
| x == gl_LINES = Lines
| x == gl_LINE_LOOP = LineLoop
| x == gl_LINE_STRIP = LineStrip
| x == gl_TRIANGLES = Triangles
| x == gl_TRIANGLE_STRIP = TriangleStrip
| x == gl_TRIANGLE_FAN = TriangleFan
| x == gl_QUADS = Quads
| x == gl_QUAD_STRIP = QuadStrip
| x == gl_POLYGON = Polygon
| x == gl_PATCHES = Patches
| otherwise = error ("unmarshalPrimitiveMode: illegal value " ++ show x)