Refactor EBO to use DSA
This commit is contained in:
+33
-18
@@ -73,15 +73,21 @@ preloadRender = do
|
||||
setupVertexAttribPointer 1 4 8 4
|
||||
let winColVAO = VAO{_vaoName = winColVAOname, _vaoVBO = winVBO}
|
||||
-- setup shape geometry/cap VBO and two VAOs
|
||||
shEBOname <- genObjectName
|
||||
--shEBOname <- genObjectName
|
||||
shEBOptr <- mallocArray numDrawableElements
|
||||
bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
bufferData ElementArrayBuffer
|
||||
$= ( fromIntegral $ glushortSize * numDrawableElements
|
||||
, nullPtr
|
||||
, StreamDraw
|
||||
)
|
||||
let shEBO = EBO{_ebo = shEBOname, _eboPtr = shEBOptr}
|
||||
shEBOname <- mglCreateSingle glCreateBuffers
|
||||
--bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
--bufferData ElementArrayBuffer
|
||||
-- $= ( fromIntegral $ glushortSize * numDrawableElements
|
||||
-- , nullPtr
|
||||
-- , StreamDraw
|
||||
-- )
|
||||
glNamedBufferData
|
||||
shEBOname
|
||||
( fromIntegral $ glushortSize * numDrawableElements)
|
||||
nullPtr
|
||||
GL_STREAM_DRAW
|
||||
let shEBO = EBO{_eboName = shEBOname, _eboPtr = shEBOptr}
|
||||
shVBOname <- genObjectName
|
||||
shVBOptr <- mallocArray (7 * numDrawableElements)
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
@@ -98,14 +104,16 @@ preloadRender = do
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
setupVertexAttribPointer 1 4 7 3
|
||||
bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
--bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
glBindBuffer GL_ELEMENT_ARRAY_BUFFER shEBOname
|
||||
--shPosVAOname <- genObjectName
|
||||
--bindVertexArrayObject $= Just shPosVAOname
|
||||
shPosVAOname <- mglCreateSingle glGenVertexArrays
|
||||
glBindVertexArray shPosVAOname
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
--bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
glBindBuffer GL_ELEMENT_ARRAY_BUFFER shEBOname
|
||||
let shPosColVAO = VAO{_vaoName = shPosColVAOname, _vaoVBO = shVBO}
|
||||
shPosVAO = VAO{_vaoName = shPosVAOname, _vaoVBO = shVBO}
|
||||
--setup silhouette edge VAO
|
||||
@@ -116,16 +124,23 @@ preloadRender = do
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
--setup ebo for silhouette edges
|
||||
silEBOname <- genObjectName
|
||||
--silEBOname <- genObjectName
|
||||
silEBOname <- mglCreateSingle glCreateBuffers
|
||||
silEBOptr <- mallocArray numDrawableElements
|
||||
-- it may be important to bind this while the correct VAO is bound
|
||||
bindBuffer ElementArrayBuffer $= Just silEBOname
|
||||
bufferData ElementArrayBuffer
|
||||
$= ( fromIntegral $ glushortSize * numDrawableElements
|
||||
, nullPtr
|
||||
, StreamDraw
|
||||
)
|
||||
let silEBO = EBO{_ebo = silEBOname, _eboPtr = silEBOptr}
|
||||
glBindBuffer GL_ELEMENT_ARRAY_BUFFER silEBOname --bindBuffer ElementArrayBuffer $= Just silEBOname
|
||||
--bindBuffer ElementArrayBuffer $= Just silEBOname
|
||||
glNamedBufferData
|
||||
silEBOname
|
||||
( fromIntegral $ glushortSize * numDrawableElements)
|
||||
nullPtr
|
||||
GL_STREAM_DRAW
|
||||
--bufferData ElementArrayBuffer
|
||||
-- $= ( fromIntegral $ glushortSize * numDrawableElements
|
||||
-- , nullPtr
|
||||
-- , StreamDraw
|
||||
-- )
|
||||
let silEBO = EBO{_eboName = silEBOname, _eboPtr = silEBOptr}
|
||||
shEdgeVAO = VAO{_vaoName = shEdgeVAOname, _vaoVBO = shVBO}
|
||||
-- lighting shaders
|
||||
lightingWallShadShad <-
|
||||
|
||||
Reference in New Issue
Block a user