diff --git a/src/Shader.hs b/src/Shader.hs index ec35ea48a..6e93314e3 100644 --- a/src/Shader.hs +++ b/src/Shader.hs @@ -38,7 +38,7 @@ bindArrayBuffersLayer numVs lay theVBO = do WriteToBuffer (fromIntegral $ floatSize * stride * numSubElements * lay) (fromIntegral $ floatSize * numVs * stride) - (_vboPointer theVBO) + (_vboPointer theVBO `plusPtr` (floatSize * stride * numSubElements * lay)) where stride = sum $ _vboAttribSizes theVBO @@ -61,9 +61,7 @@ drawShaderLay l fs i = do Just ShaderTexture{_textureObject = txo} -> textureBinding Texture2D $= Just txo _ -> return () - glDrawArrays (marshalEPrimitiveMode $ _shaderDrawPrimitive fs) (fromIntegral $ l*stride*floatSize) (fromIntegral i) - where - stride = sum $ _vboAttribSizes $ _vaoVBO $ _shaderVAO fs + glDrawArrays (marshalEPrimitiveMode $ _shaderDrawPrimitive fs) (fromIntegral $ l*numSubElements) (fromIntegral i) drawShader :: FullShader -> Int -> IO () {-# INLINE drawShader #-}