diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 5f2a204de..b8b0f0ab5 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -5,6 +5,7 @@ module Preload.Render ( cleanUpRenderPreload, ) where +import Shape.Parameters import Shader.Parameters import Control.Concurrent import Control.Lens @@ -18,7 +19,6 @@ import Graphics.GL.Core45 import Shader.AuxAddition import Shader.Compile import Shader.Data -import Shape.Data {- BINDING LIST: 0 base @@ -73,10 +73,7 @@ preloadRender = do -- note the shape shader vao is distinct from the position vao, but they -- share an EBO shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag] - [VertexAttribute 4 GL_FLOAT GL_FALSE 0 - ,VertexAttribute 4 GL_UNSIGNED_BYTE GL_TRUE (fromIntegral 4 * fromIntegral floatSize) - ,VertexAttribute 4 GL_FLOAT GL_FALSE (fromIntegral 4 * fromIntegral (floatSize + ubyteSize)) - ] + shapeVerxAttributes pmTriangles shVBO glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. eboName) diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index 7773f19e7..2defafc98 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -9,6 +9,7 @@ module Shader.Poke ( pokeFloors, ) where +import Shape.Parameters import Color import Control.Monad.Primitive import qualified Data.Vector as V @@ -433,7 +434,6 @@ pokeJustV xdata cp col ptr nv sh = do return (nv + 1) where V3 x y z = sh - V4 r g b a = col V3 nx ny nz = cp pokeJustVInvNormal :: @@ -452,7 +452,6 @@ pokeJustVInvNormal xdata cp col ptr nv sh = do return (nv + 1) where V3 x y z = sh - V4 r g b a = col V3 nx ny nz = (2 * sh) - cp pokeFlatV :: @@ -471,7 +470,6 @@ pokeFlatV xdata norm col ptr nv sh = do return (nv + 1) where V3 x y z = sh - V4 r g b a = col V3 nx ny nz = sh - norm pokeLayVerxs :: diff --git a/src/Shape/Data.hs b/src/Shape/Data.hs index 259643386..6790a1b1b 100644 --- a/src/Shape/Data.hs +++ b/src/Shape/Data.hs @@ -8,12 +8,10 @@ module Shape.Data where -import Foreign.Storable import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry.Data -import Data.Word data ShapeType = FlatFaces { _topBoxSize :: Int } @@ -54,7 +52,6 @@ makeLenses ''ShapeType type Shape = [Surface] -shapeVerxSize = sizeOf (0 :: Float) * 8 + 4 * sizeOf (0 :: Word8) --nShapeVerxComp :: Int --nShapeVerxComp = sum shapeVerxSizes diff --git a/src/Shape/Parameters.hs b/src/Shape/Parameters.hs new file mode 100644 index 000000000..65fe7b54f --- /dev/null +++ b/src/Shape/Parameters.hs @@ -0,0 +1,19 @@ +module Shape.Parameters + where + +import Shader.Parameters +import Shader.Data +import Data.Word +import Foreign.Storable +import Graphics.GL.Core45 + +shapeVerxSize :: Int +shapeVerxSize = sizeOf (0 :: Float) * 8 + 4 * sizeOf (0 :: Word8) + +shapeVerxAttributes :: [VertexAttribute] +shapeVerxAttributes = + [VertexAttribute 4 GL_FLOAT GL_FALSE 0 + ,VertexAttribute 4 GL_UNSIGNED_BYTE GL_TRUE (fromIntegral (4 :: Int) * fromIntegral floatSize) + ,VertexAttribute 4 GL_FLOAT GL_FALSE (fromIntegral (4 :: Int) * fromIntegral (floatSize + ubyteSize)) + ] +