Implement custom poking for vertices--speed regression?
This commit is contained in:
+9
-4
@@ -7,6 +7,7 @@ module Shader
|
||||
, drawShader
|
||||
, freeShaderPointers
|
||||
, drawShaderLay
|
||||
, shadVBOptr
|
||||
) where
|
||||
--import Geometry.Data
|
||||
import Shader.Data
|
||||
@@ -32,7 +33,7 @@ bindArrayBuffers numVs theVBO = do
|
||||
WriteToBuffer
|
||||
0
|
||||
(fromIntegral $ floatSize * numVs * sum (_vboAttribSizes theVBO))
|
||||
(_vboPointer theVBO)
|
||||
(_vboPtr theVBO)
|
||||
|
||||
bindArrayBuffersLayer' :: Int -> Int -> VBO -> IO ()
|
||||
bindArrayBuffersLayer' lay numVs theVBO = do
|
||||
@@ -42,7 +43,7 @@ bindArrayBuffersLayer' lay numVs theVBO = do
|
||||
WriteToBuffer
|
||||
(fromIntegral $ floatSize * stride * numSubElements * lay)
|
||||
(fromIntegral $ floatSize * numVs * stride)
|
||||
(_vboPointer theVBO `plusPtr` (floatSize * stride * numSubElements * lay))
|
||||
(_vboPtr theVBO `plusPtr` (floatSize * stride * numSubElements * lay))
|
||||
where
|
||||
stride = sum $ _vboAttribSizes theVBO
|
||||
|
||||
@@ -54,7 +55,7 @@ bindArrayBuffersLayer numVs lay theVBO = do
|
||||
WriteToBuffer
|
||||
(fromIntegral $ floatSize * stride * numSubElements * lay)
|
||||
(fromIntegral $ floatSize * numVs * stride)
|
||||
(_vboPointer theVBO `plusPtr` (floatSize * stride * numSubElements * lay))
|
||||
(_vboPtr theVBO `plusPtr` (floatSize * stride * numSubElements * lay))
|
||||
where
|
||||
stride = sum $ _vboAttribSizes theVBO
|
||||
|
||||
@@ -100,4 +101,8 @@ drawShader fs i = do
|
||||
glDrawArrays (marshalEPrimitiveMode $ _shaderDrawPrimitive fs) 0 (fromIntegral i)
|
||||
|
||||
freeShaderPointers :: FullShader -> IO ()
|
||||
freeShaderPointers fs = free $ _vboPointer $ _vaoVBO $ _shaderVAO fs
|
||||
freeShaderPointers fs = free $ _vboPtr $ _vaoVBO $ _shaderVAO fs
|
||||
|
||||
shadVBOptr :: FullShader -> Ptr Float
|
||||
shadVBOptr = _vboPtr . _vaoVBO . _shaderVAO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user