diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2022-12-02 01:56:02 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2022-12-02 01:56:02 -0700 |
commit | 053758f578fc8fb0e6ac003a660157c3d40912b7 (patch) | |
tree | 4a82f9629a7929393963c3b7a37f8e7aa3c2ed59 /Graphics/Glyph/Shaders.hs | |
parent | 0d8449f6632038ac38385bae8254f769333edc28 (diff) | |
download | earths-ring-053758f578fc8fb0e6ac003a660157c3d40912b7.tar.gz earths-ring-053758f578fc8fb0e6ac003a660157c3d40912b7.tar.bz2 earths-ring-053758f578fc8fb0e6ac003a660157c3d40912b7.zip |
Run "ormolu" on all source files.
Diffstat (limited to 'Graphics/Glyph/Shaders.hs')
-rw-r--r-- | Graphics/Glyph/Shaders.hs | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/Graphics/Glyph/Shaders.hs b/Graphics/Glyph/Shaders.hs index 9a85e1a..9041f52 100644 --- a/Graphics/Glyph/Shaders.hs +++ b/Graphics/Glyph/Shaders.hs @@ -1,57 +1,61 @@ module Graphics.Glyph.Shaders where -import Graphics.Rendering.OpenGL -import qualified Data.ByteString as BS import Control.Monad +import qualified Data.ByteString as BS import Data.Maybe +import Graphics.Rendering.OpenGL loadShader :: ShaderType -> FilePath -> IO (String, Maybe Shader) loadShader typ path = do - shader <- createShader typ - ( shaderSourceBS shader $= ) =<< BS.readFile path - compileShader shader - - ok <- get (compileStatus shader) - infoLog <- get (shaderInfoLog shader) + shader <- createShader typ + (shaderSourceBS shader $=) =<< BS.readFile path + compileShader shader - unless ok $ - deleteObjectNames [shader] + ok <- get (compileStatus shader) + infoLog <- get (shaderInfoLog shader) - return ( infoLog, if not ok then Nothing else Just shader ); + unless ok $ + deleteObjectNames [shader] + return (infoLog, if not ok then Nothing else Just shader) -loadShaders :: [(ShaderType,FilePath)] -> IO [(String, Maybe Shader)] -loadShaders = mapM ( uncurry loadShader ) +loadShaders :: [(ShaderType, FilePath)] -> IO [(String, Maybe Shader)] +loadShaders = mapM (uncurry loadShader) workingShaders :: [(a, Maybe Shader)] -> [Shader] workingShaders lst = map (fromJust . snd) (filter (isJust . snd) lst) createShaderProgram :: [Shader] -> IO (String, Maybe Program) createShaderProgram shaders = do - p <- createProgram - mapM_ (attachShader p) shaders - linkProgram p + p <- createProgram + mapM_ (attachShader p) shaders + linkProgram p - ok <- get $ linkStatus p - info <- get $ programInfoLog p + ok <- get $ linkStatus p + info <- get $ programInfoLog p - unless ok $ - deleteObjectNames [p] + unless ok $ + deleteObjectNames [p] - return ( info, if not ok then Nothing else Just p ) + return (info, if not ok then Nothing else Just p) getUniform :: Uniform a => String -> IO (Maybe (StateVar a)) getUniform name = - get currentProgram >>= (\pr -> case pr of + get currentProgram + >>= ( \pr -> case pr of Just p -> liftM (Just . uniform) (get $ uniformLocation p name) - Nothing -> return Nothing ) + Nothing -> return Nothing + ) getUniformForProgram :: Uniform a => String -> Program -> IO (StateVar a) getUniformForProgram name prog = - liftM uniform (get $ uniformLocation prog name) - + liftM uniform (get $ uniformLocation prog name) getUniformLocation :: String -> IO (Maybe UniformLocation) getUniformLocation name = - get currentProgram >>= maybe (return Nothing) (\prog -> - liftM Just (get $ uniformLocation prog name) ) + get currentProgram + >>= maybe + (return Nothing) + ( \prog -> + liftM Just (get $ uniformLocation prog name) + ) |