gelatin-shaders-0.1.0.0: Gelatin's OpenGL shaders.

Safe HaskellSafe
LanguageHaskell2010

Gelatin.Shaders.Common

Synopsis

Documentation

data Uniform name val Source #

A glsl uniform type.

Instances

GetLits k1 name String => GetLits * (Uniform k k1 name val) String Source # 

Methods

getSymbols :: Proxy (Uniform k k1 name val) String -> t Source #

data Attribute name val loc Source #

A glsl attribute type.

Instances

(GetLits k2 name String, GetLits k1 loc Integer) => GetLits * (Attribute k1 k k2 name val loc) (String, Integer) Source # 

Methods

getSymbols :: Proxy (Attribute k1 k k2 name val loc) (String, Integer) -> t Source #

data AttributeToggling a Source #

Used to resolve typeclass instances for generating enable/disable attribute functions.

data AttributeBuffering a Source #

Used to resolve typeclass instances for generating attribute buffering functions.

class IsShaderType a b where Source #

Minimal complete definition

getShaderType

Methods

getShaderType :: Proxy a -> b Source #

Instances

IsShaderType [k] ([] k) [x] Source # 

Methods

getShaderType :: Proxy [k] [x] -> b Source #

(IsShaderType a t b, IsShaderType [a] ts [b]) => IsShaderType [a] ((:) a t ts) [b] Source # 

Methods

getShaderType :: Proxy ((a ': t) ts) [b] -> b Source #

data ShaderSteps t v Source #

A shader step is a step in the shader compilation process. This means that `ShaderSteps '[VertexShader, FragmentShader] [ByteString]` is a list of vertex and fragment shader source code that needs to be compiled. `ShaderSteps '[VertexShader, FragmentShader] GLuint` most likely means a list of vertex and fragment shaders that need to be linked.

Constructors

ShaderSteps 

Fields