GLUtil-0.9.1.0: Miscellaneous OpenGL utilities.

Safe HaskellNone
LanguageHaskell98

Graphics.GLUtil.TypeMapping

Description

This module contains classes and functions to relate Haskell types with OpenGL DataTypes (typically used to describe the values stored in arrays) and VariableTypes (used as attributes and uniforms in GLSL programs).

Synopsis

Documentation

class HasVariableType a where Source #

A mapping from Haskell types to values of VariableType. This defines how Haskell values may be mapped to values that may be bound to GLSL variables.

Minimal complete definition

variableType

Methods

variableType :: a -> VariableType Source #

Instances

HasVariableType Float Source # 

Methods

variableType :: Float -> VariableType Source #

HasVariableType Int32 Source # 

Methods

variableType :: Int32 -> VariableType Source #

HasVariableType Word32 Source # 

Methods

variableType :: Word32 -> VariableType Source #

HasVariableType t => HasVariableType [t] Source # 

Methods

variableType :: [t] -> VariableType Source #

HasVariableType (V4 Int32) Source # 

Methods

variableType :: V4 Int32 -> VariableType Source #

HasVariableType (V4 Word32) Source # 

Methods

variableType :: V4 Word32 -> VariableType Source #

HasVariableType (V4 GLfloat) Source # 

Methods

variableType :: V4 GLfloat -> VariableType Source #

HasVariableType (V3 Int32) Source # 

Methods

variableType :: V3 Int32 -> VariableType Source #

HasVariableType (V3 Word32) Source # 

Methods

variableType :: V3 Word32 -> VariableType Source #

HasVariableType (V3 GLfloat) Source # 

Methods

variableType :: V3 GLfloat -> VariableType Source #

HasVariableType (V2 Int32) Source # 

Methods

variableType :: V2 Int32 -> VariableType Source #

HasVariableType (V2 Word32) Source # 

Methods

variableType :: V2 Word32 -> VariableType Source #

HasVariableType (V2 GLfloat) Source # 

Methods

variableType :: V2 GLfloat -> VariableType Source #

HasVariableType (V1 Int32) Source # 

Methods

variableType :: V1 Int32 -> VariableType Source #

HasVariableType (V1 Word32) Source # 

Methods

variableType :: V1 Word32 -> VariableType Source #

HasVariableType (V1 GLfloat) Source # 

Methods

variableType :: V1 GLfloat -> VariableType Source #

HasVariableType (M44 GLfloat) Source # 

Methods

variableType :: M44 GLfloat -> VariableType Source #

HasVariableType (M33 GLfloat) Source # 

Methods

variableType :: M33 GLfloat -> VariableType Source #

HasVariableType (M22 GLfloat) Source # 

Methods

variableType :: M22 GLfloat -> VariableType Source #

variableDataType :: VariableType -> DataType Source #

Maps each VariableType to its corresponding DataType. Typically this indicates the element type of composite variable types (e.g. variableDataType FloatVec2 = Float). Note that this is a partial mapping as we are primarily supporting the use of these types as inputs to GLSL programs where types such as Bool are not supported.

class Storable a => HasGLType a where Source #

Open mapping from Haskell types to OpenGL types.

Minimal complete definition

glType

Methods

glType :: a -> DataType Source #

Instances

HasGLType Float Source # 

Methods

glType :: Float -> DataType Source #

HasGLType Word8 Source # 

Methods

glType :: Word8 -> DataType Source #

HasGLType Word16 Source # 

Methods

glType :: Word16 -> DataType Source #

HasGLType Word32 Source # 

Methods

glType :: Word32 -> DataType Source #

HasGLType GLint Source # 

Methods

glType :: GLint -> DataType Source #