Cleanup render preload somewhat
This commit is contained in:
+13
-19
@@ -8,7 +8,7 @@ module Shader.Compile (
|
||||
makeShaderSized,
|
||||
makeShaderUsingVAO,
|
||||
setupVAO,
|
||||
setupVAOvbo,
|
||||
setupVAOUsingVBO,
|
||||
setupVAOvbo',
|
||||
setupEBO,
|
||||
setupVertexAttribPointer,
|
||||
@@ -59,17 +59,14 @@ makeShaderEBO ::
|
||||
[GLenum] ->
|
||||
-- | The input vertex sizes
|
||||
[Int] ->
|
||||
-- | The stride
|
||||
Int ->
|
||||
PrimitiveMode ->
|
||||
VBO ->
|
||||
IO (Shader, EBO)
|
||||
makeShaderEBO s shaderlist sizes strd pm vbo = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
vao <- setupVAOvbo sizes strd vbo
|
||||
ebo <- setupEBO vao
|
||||
return
|
||||
( Shader prog pm vao
|
||||
makeShaderEBO s shaderlist sizes pm vbo = do
|
||||
shad <- makeShaderUsingVBO s shaderlist sizes pm vbo
|
||||
ebo <- setupEBO (shad ^. shaderVAO)
|
||||
glVertexArrayElementBuffer (shad ^. shaderVAO . vaoName) (ebo ^. eboName)
|
||||
return ( shad
|
||||
, ebo
|
||||
)
|
||||
|
||||
@@ -84,10 +81,7 @@ makeShaderUsingVBO ::
|
||||
VBO ->
|
||||
IO Shader
|
||||
makeShaderUsingVBO s shaderlist sizes pm vbo = do
|
||||
let strd = vbo ^. vboVertexSize
|
||||
when (strd < sum sizes) $
|
||||
error "Tried to assign vertex attributes to VBO with too small a stride."
|
||||
vao <- setupVAOvbo sizes strd vbo
|
||||
vao <- setupVAOUsingVBO sizes vbo
|
||||
makeShaderUsingVAO s shaderlist pm vao
|
||||
|
||||
setupVBO :: Int -> IO VBO
|
||||
@@ -205,15 +199,15 @@ setupVAOvbo' sizes strd vbo = do
|
||||
{ _vaoName = vaoname
|
||||
}
|
||||
|
||||
setupVAOvbo :: [Int] -> Int -> VBO -> IO VAO
|
||||
setupVAOvbo sizes strd vbo = do
|
||||
setupVAOUsingVBO :: [Int] -> VBO -> IO VAO
|
||||
setupVAOUsingVBO sizes vbo = do
|
||||
let strd = vbo ^. vboVertexSize
|
||||
when (strd < sum sizes) $
|
||||
error "Tried to assign vertex attributes to VBO with too small a stride."
|
||||
vaoname <- mglCreate glCreateVertexArrays
|
||||
glBindVertexArray vaoname
|
||||
setupVertexAttribs vbo vaoname sizes strd
|
||||
return $
|
||||
VAO
|
||||
{ _vaoName = vaoname
|
||||
}
|
||||
return VAO { _vaoName = vaoname }
|
||||
|
||||
setupEBO :: VAO -> IO EBO
|
||||
setupEBO vao = do
|
||||
|
||||
Reference in New Issue
Block a user