gruff-0.2: src/Shader.hs
module Shader (shader) where
import Graphics.Rendering.OpenGL
shader :: Maybe FilePath -> Maybe FilePath -> IO Program
shader mV mF = do
[p] <- genObjectNames 1
vs <- case mV of
Nothing -> return []
Just v -> do
[vert] <- genObjectNames 1
source <- readFile v
shaderSource vert $= [ source ]
compileShader vert
-- print =<< get (shaderInfoLog vert)
return [vert]
fs <- case mF of
Nothing -> return []
Just f -> do
[frag] <- genObjectNames 1
source <- readFile f
shaderSource frag $= [ source ]
compileShader frag
-- print =<< get (shaderInfoLog frag)
return [frag]
attachedShaders p $= (vs, fs)
linkProgram p
-- print =<< get (programInfoLog p)
return p