Add VertexAttribute type

This commit is contained in:
2023-04-12 18:09:02 +01:00
parent de598f9328
commit 64775750b4
+48 -37
View File
@@ -3,43 +3,45 @@
{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TemplateHaskell #-}
-- | Datatypes used to setup and pass data to shaders. -- | Datatypes used to setup and pass data to shaders.
module Shader.Data ( module Shader.Data
VAO (..), -- (
VBO (..), -- VAO (..),
EBO (..), -- VBO (..),
TO (..), -- EBO (..),
FBO (..), -- TO (..),
Shader (..), -- FBO (..),
PrimitiveMode (..), -- Shader (..),
-- | Lens functions -- PrimitiveMode (..),
vaoName, -- -- | Lens functions
shaderUINT, -- vaoName,
shaderPrimitive, -- shaderUINT,
shaderVAO, -- shaderPrimitive,
textureObject, -- shaderVAO,
vboName, -- textureObject,
vboPtr, -- vboName,
vboVertexSize, -- vboPtr,
unFBO, -- vboVertexSize,
unTO, -- unFBO,
unPrimitiveMode, -- unTO,
eboName, -- unPrimitiveMode,
eboPtr, -- eboName,
-- | Synonyms -- eboPtr,
vert, -- -- | Synonyms
geom, -- vert,
frag, -- geom,
pmPoints, -- frag,
pmLines, -- pmPoints,
pmLinesAdjacency, -- pmLines,
pmLineLoop, -- pmLinesAdjacency,
pmLineStrip, -- pmLineLoop,
pmTriangles, -- pmLineStrip,
pmTriangleStrip, -- pmTriangles,
pmTriangleFan, -- pmTriangleStrip,
pmQuads, -- pmTriangleFan,
pmPatches, -- pmQuads,
) where -- pmPatches,
--)
where
import Control.Lens import Control.Lens
import Foreign import Foreign
@@ -63,6 +65,14 @@ newtype VAO = VAO
{ _vaoName :: GLuint { _vaoName :: GLuint
} }
data VertexAttribute = VertexAttribute
{ _vaNumberElements :: GLint
, _vaElementType :: GLenum
, _vaToNormalize :: GLboolean
, _vaOffset :: GLuint
}
{- | Vertex buffer object: contains the reference to the object, {- | Vertex buffer object: contains the reference to the object,
a pointer to a location with space that can be written to the buffer, a pointer to a location with space that can be written to the buffer,
and a list of attribute pointer sizes. and a list of attribute pointer sizes.
@@ -114,3 +124,4 @@ makeLenses ''Shader
makeLenses ''FBO makeLenses ''FBO
makeLenses ''TO makeLenses ''TO
makeLenses ''PrimitiveMode makeLenses ''PrimitiveMode
makeLenses ''VertexAttribute