Cleanup some silhouette edge buffers
This commit is contained in:
+3
-3
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user