luminance-0.1: src/Graphics/Luminance/Core/RenderCmd.hs
-----------------------------------------------------------------------------
-- |
-- Copyright : (C) 2015 Dimitri Sabadie
-- License : BSD3
--
-- Maintainer : Dimitri Sabadie <dimitri.sabadie@gmail.com>
-- Stability : experimental
-- Portability : portable
-----------------------------------------------------------------------------
module Graphics.Luminance.Core.RenderCmd where
import Graphics.Luminance.Core.Blending
import Graphics.Luminance.Core.Shader.Uniform ( U(..) )
-- FIXME: we need to make a tighter link between c and blending and between d and the depth test.
data RenderCmd rw c d u a = RenderCmd (Maybe (BlendingMode,BlendingFactor,BlendingFactor)) Bool (U u) u a
instance Functor (RenderCmd rw c d u) where
fmap f (RenderCmd blending depthTest uni u a) = RenderCmd blending depthTest uni u (f a)
renderCmd :: Maybe (BlendingMode,BlendingFactor,BlendingFactor)
-> Bool
-> U u
-> u
-> a
-> RenderCmd rw c d u a
renderCmd = RenderCmd
stdRenderCmd :: U u -> u -> a -> RenderCmd rw c d u a
stdRenderCmd = RenderCmd Nothing True