module Gamgine.State.RenderState where #include "Gamgine/Utils.cpp" import Control.Applicative ((<$>)) import qualified Data.List as L import qualified Graphics.GL as GL import qualified Gamgine.Font.GLF as GLF IMPORT_LENS_AS_LE newtype TextureName = TextureName Int deriving (Show, Eq) newtype FontName = FontName Int deriving (Show, Eq) type TextureIds = [(TextureName, GL.GLuint)] type FontIds = [(FontName , GLF.FontId)] data Ressources = Ressources { textureIds :: TextureIds, fontIds :: FontIds } deriving Show emptyRessources :: Ressources emptyRessources = Ressources [] [] textureId :: TextureName -> Ressources -> Maybe GL.GLuint textureId name res = L.lookup name $ textureIds res fontId :: FontName -> Ressources -> Maybe GLF.FontId fontId name res = L.lookup name $ fontIds res LENS(textureIds) LENS(fontIds) data RenderState = RenderState { nextFrameFraction :: Double, -- ^ value range 0-1 ressources :: Ressources, frustumSize :: (Double, Double) } deriving Show LENS(nextFrameFraction) LENS(ressources) LENS(frustumSize)