Try to add compute shaders
This commit is contained in:
@@ -12,6 +12,7 @@ module Shader.Compile (
|
||||
setupVAOvbo',
|
||||
setupEBO,
|
||||
setupVertexAttribPointer,
|
||||
makeSourcedShader,
|
||||
) where
|
||||
|
||||
import Control.Lens
|
||||
@@ -66,7 +67,8 @@ 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
|
||||
return
|
||||
( shad
|
||||
, ebo
|
||||
)
|
||||
|
||||
@@ -81,7 +83,7 @@ makeShaderUsingVBO ::
|
||||
VBO ->
|
||||
IO Shader
|
||||
makeShaderUsingVBO s shaderlist sizes pm vbo = do
|
||||
vao <- setupVAOUsingVBO sizes vbo
|
||||
vao <- setupVAOUsingVBO sizes vbo
|
||||
makeShaderUsingVAO s shaderlist pm vao
|
||||
|
||||
setupVBO :: Int -> IO VBO
|
||||
@@ -183,6 +185,7 @@ shaderTypeExt :: GLenum -> String
|
||||
shaderTypeExt GL_VERTEX_SHADER = ".vert"
|
||||
shaderTypeExt GL_GEOMETRY_SHADER = ".geom"
|
||||
shaderTypeExt GL_FRAGMENT_SHADER = ".frag"
|
||||
shaderTypeExt GL_COMPUTE_SHADER = ".comp"
|
||||
shaderTypeExt _ = undefined
|
||||
|
||||
-- I think that this requires that the correct shader program is bound?
|
||||
@@ -207,7 +210,7 @@ setupVAOUsingVBO sizes vbo = do
|
||||
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