diff --git a/src/Shader/Data.hs b/src/Shader/Data.hs index 188245886..a71eb6797 100644 --- a/src/Shader/Data.hs +++ b/src/Shader/Data.hs @@ -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