gelatin-gl-0.1.0.0: OpenGL rendering routines for the gelatin-picture graphics EDSL.

Safe HaskellNone
LanguageHaskell2010

Gelatin.GL.Shader

Contents

Synopsis

Compiling and loading shaders

compileOGLShader Source #

Arguments

:: (MonadIO m, MonadError String m) 
=> ByteString

The shader source

-> GLenum

The shader type (vertex, frag, etc)

-> m GLuint

Either an error message or the generated shader handle.

compileProgram :: (MonadIO m, MonadError String m, GetLits as [(String, Integer)]) => Proxy (as :: [*]) -> ShaderSteps (ts :: [*]) GLuint -> m GLuint Source #

loadSimple2DShader :: (MonadIO m, MonadError String m) => m Simple2DShader Source #

Compile all shader programs and return a "sum renderer".

Orphan instances

IsShaderType * VertexShader GLenum Source # 
IsShaderType * FragmentShader GLenum Source # 
(KnownNat loc, KnownSymbol name) => HasGenFunc * (AttributeToggling * (Attribute Nat * Symbol name val loc)) Source # 

Associated Types

type GenFunc (AttributeToggling * (Attribute Nat * Symbol name val loc)) (a :: AttributeToggling * (Attribute Nat * Symbol name val loc)) :: * #

Methods

genFunction :: Proxy (AttributeToggling * (Attribute Nat * Symbol name val loc)) a -> GenFunc (AttributeToggling * (Attribute Nat * Symbol name val loc)) a #

(KnownNat loc, KnownSymbol name, Foldable f, Unbox (f Float), Storable (f Float)) => HasGenFunc * (AttributeBuffering * (Attribute Nat * Symbol name (f Float) loc)) Source # 

Associated Types

type GenFunc (AttributeBuffering * (Attribute Nat * Symbol name (f Float) loc)) (a :: AttributeBuffering * (Attribute Nat * Symbol name (f Float) loc)) :: * #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 Bool) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 Bool) (a :: Uniform * Symbol name0 Bool) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 Bool) a -> GenFunc (Uniform * Symbol name0 Bool) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 Int) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 Int) (a :: Uniform * Symbol name0 Int) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 Int) a -> GenFunc (Uniform * Symbol name0 Int) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 PrimType) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 PrimType) (a :: Uniform * Symbol name0 PrimType) :: * #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 Float) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 Float) (a :: Uniform * Symbol name0 Float) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 Float) a -> GenFunc (Uniform * Symbol name0 Float) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (V2 Float)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (V2 Float)) (a :: Uniform * Symbol name0 (V2 Float)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (V2 Float)) a -> GenFunc (Uniform * Symbol name0 (V2 Float)) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (V3 Float)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (V3 Float)) (a :: Uniform * Symbol name0 (V3 Float)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (V3 Float)) a -> GenFunc (Uniform * Symbol name0 (V3 Float)) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (V4 Float)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (V4 Float)) (a :: Uniform * Symbol name0 (V4 Float)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (V4 Float)) a -> GenFunc (Uniform * Symbol name0 (V4 Float)) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (M44 Float)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (M44 Float)) (a :: Uniform * Symbol name0 (M44 Float)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (M44 Float)) a -> GenFunc (Uniform * Symbol name0 (M44 Float)) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (Int, Int)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (Int, Int)) (a :: Uniform * Symbol name0 (Int, Int)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (Int, Int)) a -> GenFunc (Uniform * Symbol name0 (Int, Int)) a #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (LineCap, LineCap)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (LineCap, LineCap)) (a :: Uniform * Symbol name0 (LineCap, LineCap)) :: * #

KnownSymbol name0 => HasGenFunc * (Uniform * Symbol name0 (V2 Int)) Source # 

Associated Types

type GenFunc (Uniform * Symbol name0 (V2 Int)) (a :: Uniform * Symbol name0 (V2 Int)) :: * #

Methods

genFunction :: Proxy (Uniform * Symbol name0 (V2 Int)) a -> GenFunc (Uniform * Symbol name0 (V2 Int)) a #