Refactor shader types
This commit is contained in:
+39
-38
@@ -38,16 +38,16 @@ makeShader ::
|
||||
[GLenum] ->
|
||||
-- | The input vertex sizes
|
||||
[Int] ->
|
||||
EPrimitiveMode ->
|
||||
IO (FullShader,VBO)
|
||||
PrimitiveMode ->
|
||||
IO (Shader,VBO)
|
||||
makeShader s shaderlist sizes pm = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
(vao,vbo) <- setupVAO sizes
|
||||
return ( FullShader
|
||||
{ _shadName = prog
|
||||
, _shadVAO = vao
|
||||
, _shadPrim' = pm
|
||||
, _shadTex' = Nothing
|
||||
return ( Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = mempty
|
||||
}
|
||||
, vbo)
|
||||
|
||||
@@ -60,7 +60,7 @@ makeShaderEBO ::
|
||||
[Int] ->
|
||||
-- | The stride
|
||||
Int ->
|
||||
GLenum ->
|
||||
PrimitiveMode ->
|
||||
VBO ->
|
||||
IO (Shader, EBO)
|
||||
makeShaderEBO s shaderlist sizes strd pm vbo = do
|
||||
@@ -68,7 +68,7 @@ makeShaderEBO s shaderlist sizes strd pm vbo = do
|
||||
vao <- setupVAOvbo sizes strd vbo
|
||||
ebo <- setupEBO vao
|
||||
return
|
||||
( Shader prog pm vao
|
||||
( Shader prog pm vao []
|
||||
, ebo
|
||||
)
|
||||
|
||||
@@ -81,17 +81,17 @@ makeShader4 ::
|
||||
[Int] ->
|
||||
-- | The stride
|
||||
Int ->
|
||||
EPrimitiveMode ->
|
||||
PrimitiveMode ->
|
||||
VBO ->
|
||||
IO FullShader
|
||||
IO Shader
|
||||
makeShader4 s shaderlist sizes strd pm vbo = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
vao <- setupVAOvbo sizes strd vbo
|
||||
return $ FullShader
|
||||
{ _shadName = prog
|
||||
, _shadVAO = vao
|
||||
, _shadPrim' = pm
|
||||
, _shadTex' = Nothing
|
||||
return $ Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = mempty
|
||||
}
|
||||
|
||||
makeShader4UsingVAO ::
|
||||
@@ -99,7 +99,7 @@ makeShader4UsingVAO ::
|
||||
String ->
|
||||
-- | shader types
|
||||
[GLenum] ->
|
||||
GLenum ->
|
||||
PrimitiveMode ->
|
||||
VAO ->
|
||||
IO Shader
|
||||
makeShader4UsingVAO s shaderlist pm vao = do
|
||||
@@ -108,6 +108,7 @@ makeShader4UsingVAO s shaderlist pm vao = do
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = []
|
||||
}
|
||||
|
||||
setupVBO :: Int -> IO VBO
|
||||
@@ -137,17 +138,17 @@ makeByteStringShaderUsingVAO ::
|
||||
String ->
|
||||
-- | Filetype extensions and shader data
|
||||
[(GLenum, BS.ByteString)] ->
|
||||
EPrimitiveMode ->
|
||||
PrimitiveMode ->
|
||||
VAO ->
|
||||
IO FullShader
|
||||
IO Shader
|
||||
makeByteStringShaderUsingVAO s shaderlist pm vao = do
|
||||
prog <- makeShaderProgram s shaderlist
|
||||
return $
|
||||
FullShader
|
||||
{ _shadName = prog
|
||||
, _shadVAO = vao
|
||||
, _shadPrim' = pm
|
||||
, _shadTex' = Nothing
|
||||
Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = mempty
|
||||
}
|
||||
|
||||
-- | Takes the VAO from elsewhere
|
||||
@@ -156,17 +157,17 @@ makeShaderUsingVAO ::
|
||||
String ->
|
||||
-- | shader types
|
||||
[GLenum] ->
|
||||
EPrimitiveMode ->
|
||||
PrimitiveMode ->
|
||||
VAO ->
|
||||
IO FullShader
|
||||
IO Shader
|
||||
makeShaderUsingVAO s shaderlist pm theVAO = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
return $
|
||||
FullShader
|
||||
{ _shadName = prog
|
||||
, _shadVAO = theVAO
|
||||
, _shadPrim' = pm
|
||||
, _shadTex' = Nothing
|
||||
Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = theVAO
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = mempty
|
||||
}
|
||||
|
||||
{- |
|
||||
@@ -182,16 +183,16 @@ makeShaderSized ::
|
||||
[Int] ->
|
||||
-- | Number of vertexes that can be poked
|
||||
Int ->
|
||||
EPrimitiveMode ->
|
||||
IO (FullShader,VBO)
|
||||
PrimitiveMode ->
|
||||
IO (Shader,VBO)
|
||||
makeShaderSized s shaderlist sizes ndraw pm = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
(vao,vbo) <- setupVAOSized ndraw sizes
|
||||
return ( FullShader
|
||||
{ _shadName = prog
|
||||
, _shadVAO = vao
|
||||
, _shadPrim' = pm
|
||||
, _shadTex' = Nothing
|
||||
return ( Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
, _shaderTextures = mempty
|
||||
}
|
||||
, vbo)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user