Continue render refactor
This commit is contained in:
+11
-16
@@ -2,7 +2,6 @@ module Shader
|
||||
( freeShaderPointers'
|
||||
, drawShaderLay
|
||||
, shadVBOptr
|
||||
, shadVBOptr'
|
||||
, drawShader
|
||||
, pokeBindFoldable
|
||||
, pokeBindFoldableLayer
|
||||
@@ -21,22 +20,22 @@ import Control.Monad.Primitive
|
||||
import Foreign
|
||||
import Graphics.GL.Core45
|
||||
|
||||
drawShaderLay :: Int -> UMV.MVector (PrimState IO) Int -> Int -> FullShader -> IO ()
|
||||
drawShaderLay :: Int -> UMV.MVector (PrimState IO) Int -> Int -> (FullShader,VBO) -> IO ()
|
||||
{-# INLINE drawShaderLay #-}
|
||||
drawShaderLay l countsVector shadIn fs = do
|
||||
i <- UMV.read countsVector shadIn
|
||||
--currentProgram $= Just (_shadProg' fs)
|
||||
glUseProgram (_shadName fs)
|
||||
glBindVertexArray $ fs ^. shadVAO' . vaoName
|
||||
glUseProgram (_shadName $ fst fs)
|
||||
glBindVertexArray $ fs ^. _1 . shadVAO' . vaoName
|
||||
--bindVertexArrayObject $= Just (_vaoName $ _shadVAO' fs)
|
||||
case _shadTex' fs of
|
||||
case _shadTex' $ fst fs of
|
||||
Just ShaderTexture{_textureObject = txo} --, _textureTarget = tt}
|
||||
-- -> textureBinding Texture2D $= Just txo
|
||||
-- -> glBindTexture tt txo
|
||||
-> glBindTextureUnit 0 txo
|
||||
_ -> return ()
|
||||
glDrawArrays
|
||||
(marshalEPrimitiveMode $ _shadPrim' fs)
|
||||
(marshalEPrimitiveMode $ _shadPrim' $ fst fs)
|
||||
(fromIntegral $ l*numSubElements)
|
||||
(fromIntegral i)
|
||||
|
||||
@@ -58,11 +57,11 @@ drawShader fs i = do
|
||||
0
|
||||
(fromIntegral i)
|
||||
|
||||
freeShaderPointers' :: FullShader -> IO ()
|
||||
freeShaderPointers' = free . _vboPtr . _vaoVBO . _shadVAO'
|
||||
freeShaderPointers' :: (FullShader,VBO) -> IO ()
|
||||
freeShaderPointers' = free . _vboPtr . snd
|
||||
|
||||
pokeBindFoldable
|
||||
:: MV.MVector (PrimState IO) FullShader
|
||||
:: MV.MVector (PrimState IO) (FullShader,VBO)
|
||||
-> UMV.MVector (PrimState IO) Int
|
||||
-> Picture
|
||||
-> IO ()
|
||||
@@ -71,7 +70,7 @@ pokeBindFoldable shadV counts m = do
|
||||
bindShader shadV counts
|
||||
|
||||
pokeBindFoldableLayer
|
||||
:: MV.MVector (PrimState IO) FullShader
|
||||
:: MV.MVector (PrimState IO) (FullShader,VBO)
|
||||
-> UMV.MVector (PrimState IO) Int
|
||||
-> Picture
|
||||
-> IO ()
|
||||
@@ -79,10 +78,6 @@ pokeBindFoldableLayer shadV counts m = do
|
||||
pokeLayVerxs shadV counts m
|
||||
bindShaderLayers shadV counts
|
||||
|
||||
shadVBOptr :: FullShader -> Ptr Float
|
||||
shadVBOptr :: (FullShader,VBO) -> Ptr Float
|
||||
{-# INLINE shadVBOptr #-}
|
||||
shadVBOptr = _vboPtr . _vaoVBO . _shadVAO'
|
||||
|
||||
shadVBOptr' :: FullShader -> Ptr Float
|
||||
{-# INLINE shadVBOptr' #-}
|
||||
shadVBOptr' = _vboPtr . _vaoVBO . _shadVAO'
|
||||
shadVBOptr = _vboPtr . snd
|
||||
|
||||
Reference in New Issue
Block a user