Cleanup some silhouette edge buffers

This commit is contained in:
2025-11-11 17:45:30 +00:00
parent 4d59d521ac
commit ceba6fd533
6 changed files with 39 additions and 52 deletions
+3 -3
View File
@@ -25,13 +25,13 @@ bufferPokedVBO theVBO numVs =
(fromIntegral $ numVs * _vboVertexBytes theVBO)
(_vboPtr theVBO)
bufferEBO :: EBO -> Int -> IO ()
bufferEBO :: UintBO -> Int -> IO ()
bufferEBO ebo numis =
glNamedBufferSubData
(ebo ^. eboName)
(ebo ^. uiboName)
0
(fromIntegral $ gluintSize * numis)
(ebo ^. eboPtr)
(ebo ^. uiboPtr)
bufferShaderLayers :: MV.MVector (PrimState IO) (Shader, VBO) -> UMV.MVector (PrimState IO) Int -> IO ()
bufferShaderLayers shads counts = MV.imapM_ f shads
+4 -6
View File
@@ -59,11 +59,11 @@ makeShaderEBO ::
[VertexAttribute] ->
PrimitiveMode ->
VBO ->
IO (Shader, EBO)
IO (Shader, UintBO)
makeShaderEBO s shaderlist sizes pm vbo = do
shad <- makeShaderUsingVBO s shaderlist sizes pm vbo
ebo <- setupEBO (shad ^. shaderVAO)
glVertexArrayElementBuffer (shad ^. shaderVAO . vaoName) (ebo ^. eboName)
glVertexArrayElementBuffer (shad ^. shaderVAO . vaoName) (ebo ^. uiboName)
return (shad, ebo)
makeShaderUsingVBO ::
@@ -189,19 +189,17 @@ setupVAOUsingVBO vas vbo = do
(fromIntegral strd)
return VAO{_vaoName = vaoname}
setupEBO :: VAO -> IO EBO
setupEBO :: VAO -> IO UintBO
setupEBO vao = do
eboptr <- mallocArray 65536 -- so we can go back to glushort...
eboname <- mglCreate glCreateBuffers
--glNamedBufferData
glNamedBufferStorage
eboname
(fromIntegral $ gluintSize * 65536)
nullPtr
GL_DYNAMIC_STORAGE_BIT
--GL_STREAM_DRAW
glVertexArrayElementBuffer (vao ^. vaoName) eboname
return $ EBO eboname eboptr
return $ UintBO eboname eboptr
setupVBOVAO :: [VertexAttribute] -> IO (VAO, VBO)
setupVBOVAO vas = do
+10 -4
View File
@@ -91,9 +91,14 @@ data FloatBO = FloatBO
, _boType :: BOType
}
data EBO = EBO
{ _eboName :: GLuint
, _eboPtr :: Ptr GLuint
data UintBO = UintBO
{ _uiboName :: GLuint
, _uiboPtr :: Ptr GLuint
}
data SSBO a = SSBO
{ _ssboName :: GLuint
, _ssboPtr :: Ptr a
}
-- | Datatype containing the reference to a texture object.
@@ -124,7 +129,8 @@ pmPatches = PrimitiveMode GL_PATCHES
makeLenses ''VAO
makeLenses ''VBO
makeLenses ''EBO
makeLenses ''UintBO
makeLenses ''SSBO
makeLenses ''ShaderTexture
makeLenses ''Shader
makeLenses ''FBO