Hate-0.1.4.2: src/Hate/Graphics/Types.hs
module Hate.Graphics.Types where
import qualified Graphics.Rendering.OpenGL as GL
import Data.Vect.Float
import Data.Vect.Float.Instances()
-- |A general type for a graphical mesh, either in indexed or raw form.
data VertexStream = VertexStream {
vao :: GL.VertexArrayObject,
vbo :: GL.BufferObject,
texVbo :: GL.BufferObject,
vertNum :: Int
} deriving (Eq, Show)
-- userspace data
data PipelineDescription = SolidColorPipeline Vec4 | TexturingPipeline GL.TextureObject deriving (Eq, Show)
data VertexLayout = FanVertexLayout | StripVertexLayout | LinesVertexLayout deriving (Eq, Show)
data OriginReference = TopLeft | Middle deriving (Eq, Show)
data DrawRequest = DrawRequest {
vertices :: [Vec2],
texCoords :: Maybe [Vec2],
origin :: Mat4,
vertexLayout :: VertexLayout,
transformation :: Mat4,
pipeline :: PipelineDescription
} deriving (Eq, Show)
data Sprite = Sprite {
size :: (Int, Int),
texture :: GL.TextureObject
} deriving (Eq, Show)
data SpriteSheet = SpriteSheet {
spriteRef :: Sprite,
sheetSize :: (Int, Int)
}
type Color = Vec4