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 #-}
-- | Datatypes used to setup and pass data to shaders.
module Shader.Data (
VAO (..),
VBO (..),
EBO (..),
TO (..),
FBO (..),
Shader (..),
PrimitiveMode (..),
-- | Lens functions
vaoName,
shaderUINT,
shaderPrimitive,
shaderVAO,
textureObject,
vboName,
vboPtr,
vboVertexSize,
unFBO,
unTO,
unPrimitiveMode,
eboName,
eboPtr,
-- | Synonyms
vert,
geom,
frag,
pmPoints,
pmLines,
pmLinesAdjacency,
pmLineLoop,
pmLineStrip,
pmTriangles,
pmTriangleStrip,
pmTriangleFan,
pmQuads,
pmPatches,
) where
module Shader.Data
-- (
-- VAO (..),
-- VBO (..),
-- EBO (..),
-- TO (..),
-- FBO (..),
-- Shader (..),
-- PrimitiveMode (..),
-- -- | Lens functions
-- vaoName,
-- shaderUINT,
-- shaderPrimitive,
-- shaderVAO,
-- textureObject,
-- vboName,
-- vboPtr,
-- vboVertexSize,
-- unFBO,
-- unTO,
-- unPrimitiveMode,
-- eboName,
-- eboPtr,
-- -- | Synonyms
-- vert,
-- geom,
-- frag,
-- pmPoints,
-- pmLines,
-- pmLinesAdjacency,
-- pmLineLoop,
-- pmLineStrip,
-- pmTriangles,
-- pmTriangleStrip,
-- pmTriangleFan,
-- pmQuads,
-- pmPatches,
--)
where
import Control.Lens
import Foreign
@@ -63,6 +65,14 @@ newtype VAO = VAO
{ _vaoName :: GLuint
}
data VertexAttribute = VertexAttribute
{ _vaNumberElements :: GLint
, _vaElementType :: GLenum
, _vaToNormalize :: GLboolean
, _vaOffset :: GLuint
}
{- | Vertex buffer object: contains the reference to the object,
a pointer to a location with space that can be written to the buffer,
and a list of attribute pointer sizes.
@@ -114,3 +124,4 @@ makeLenses ''Shader
makeLenses ''FBO
makeLenses ''TO
makeLenses ''PrimitiveMode
makeLenses ''VertexAttribute