Get shape shader working using vertex pulling
Seems slow, will try to improve
This commit is contained in:
+7
-6
@@ -176,12 +176,13 @@ doDrawing' win pdata u = do
|
||||
--draw object shapes onto base buffer
|
||||
let fs = _shapeShader pdata
|
||||
glUseProgram (_shaderUINT fs)
|
||||
glBindVertexArray $ fs ^. shaderVAO . vaoName
|
||||
glDrawElements
|
||||
(_unPrimitiveMode $ _shaderPrimitive fs)
|
||||
(fromIntegral nIndices)
|
||||
GL_UNSIGNED_INT
|
||||
nullPtr
|
||||
-- glBindVertexArray $ fs ^. shaderVAO . vaoName
|
||||
glDrawArrays GL_TRIANGLES 0 (fromIntegral nIndices)
|
||||
-- glDrawElements
|
||||
-- (_unPrimitiveMode $ _shaderPrimitive fs)
|
||||
-- (fromIntegral nIndices)
|
||||
-- GL_UNSIGNED_INT
|
||||
-- nullPtr
|
||||
-- draw chasm shader blocking floor
|
||||
glUseProgram (pdata ^. chasmShader . shaderUINT)
|
||||
glBindVertexArray $ pdata ^. chasmShader . shaderVAO . vaoName
|
||||
|
||||
@@ -82,14 +82,12 @@ preloadRender = do
|
||||
shEBO <- setupEBO shPosVAO
|
||||
-- note the shape shader vao is distinct from the position vao, but they
|
||||
-- share an EBO
|
||||
-- shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag] shapeVerxAttributes
|
||||
-- pmTriangles
|
||||
-- shVBO
|
||||
-- glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. uiboName)
|
||||
shapeshader <-
|
||||
makeShaderUsingVBO
|
||||
"shape/basic"
|
||||
[vert, frag]
|
||||
shapeVerxAttributes
|
||||
pmTriangles
|
||||
shVBO
|
||||
glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. uiboName)
|
||||
makeShaderUsingVAO "shape/basic" [vert, frag] pmTriangles (VAO dummyvao)
|
||||
|
||||
putStrLn "Setup wall/windows VBO, VAO, EBO, shader"
|
||||
-- winvbo <- setupVBO (floatSize * 8)
|
||||
|
||||
@@ -29,10 +29,6 @@ bufferEBO :: UintBO -> Int -> IO ()
|
||||
bufferEBO x i =
|
||||
glNamedBufferSubData (x ^. uiboName) 0 (fromIntegral $ gluintSize * i) (x ^. uiboPtr)
|
||||
|
||||
--bufferFloatBO :: VBO -> Int -> IO ()
|
||||
--bufferFloatBO x i = undefined
|
||||
-- glNamedBufferSubData (x ^. uiboName) 0 (fromIntegral $ gluintSize * i) (x ^. uiboPtr)
|
||||
|
||||
bufferShaderLayers :: MV.MVector (PrimState IO) (Shader, VBO) -> UMV.MVector (PrimState IO) Int -> IO ()
|
||||
bufferShaderLayers shads counts = MV.imapM_ f shads
|
||||
where
|
||||
|
||||
Reference in New Issue
Block a user