First pass at using UBO

This commit is contained in:
jgk
2021-06-24 16:17:43 +02:00
parent d534f08064
commit 9c94ec93bd
6 changed files with 115 additions and 12 deletions
+21 -2
View File
@@ -21,9 +21,9 @@ import Picture.Tree
import Shader
import Shader.Data
import Shader.Poke
--import MatrixHelper
import MatrixHelper
import Foreign (Word32)
import Foreign
--import Control.Applicative
--import Control.Monad.State
import Control.Lens
@@ -55,6 +55,25 @@ doDrawing pdata w = do
viewFroms@(viewFromx,viewFromy) = _cameraViewFrom w
pic = worldPictures w
wallPoints = map fst wallPointsCol
let pmat = perspectiveMatrixb rot camzoom trans wins viewFroms
pmata <- (newMatrix RowMajor $ perspectiveMatrix rot camzoom trans wins viewFroms) :: IO (GLmatrix GLfloat)
-- withMatrix pmata $ \_ ptr ->
-- bufferData UniformBuffer $=
-- (fromIntegral $ sizeOf (head pmat) * length pmat
-- ,ptr
-- ,StreamDraw
-- )
withArray pmat $ \ptr ->
bufferData UniformBuffer $=
(fromIntegral $ sizeOf (head pmat) * length pmat
,ptr
,StreamDraw
)
-- bufferData UniformBuffer $=
-- set the coordinate uniforms ready for drawing elements using world coordinates
--setIsoMatrixUniforms pdata rot camzoom trans wins
setPerpMatrixUniforms pdata rot camzoom trans wins viewFroms