diff options
Diffstat (limited to 'src/Vivant/Renderer.hs')
-rw-r--r-- | src/Vivant/Renderer.hs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/Vivant/Renderer.hs b/src/Vivant/Renderer.hs index f66b0d7..91a395f 100644 --- a/src/Vivant/Renderer.hs +++ b/src/Vivant/Renderer.hs @@ -1,28 +1,27 @@ -module Vivant.Renderer - (Renderer(..), getUniformLocation, destroyRenderer, render, setVertexAttribute) -where +module Vivant.Renderer (Renderer (..), getUniformLocation, destroyRenderer, render, setVertexAttribute) where -import qualified Graphics.Rendering.OpenGL as GL -import Linear +import Foreign.Marshal.Alloc (free) import Foreign.Ptr +import Foreign.Storable (sizeOf) import qualified Graphics.GL.Functions as GL (glUniformMatrix4fv) import Graphics.Rendering.OpenGL (($=)) -import Foreign.Marshal.Alloc (free) -import Foreign.Storable (sizeOf) +import qualified Graphics.Rendering.OpenGL as GL +import Linear data Renderer = Renderer { rendererProgram :: Maybe GL.Program, rendererVao :: Maybe GL.VertexArrayObject, rendererModelP :: Ptr (M44 Float), rendererTriangleNum :: Int - } deriving (Show) + } + deriving (Show) getUniformLocation :: GL.UniformLocation -> GL.GLint getUniformLocation (GL.UniformLocation i) = i render :: Renderer -> IO () render r@(Renderer {rendererProgram = Just p}) = do --- GL.currentProgram $= rendererProgram r + -- GL.currentProgram $= rendererProgram r GL.bindVertexArrayObject $= rendererVao r model <- getUniformLocation <$> GL.uniformLocation p "model" |