SFML-0.2.0.0: src/SFML/Graphics/BlendMode.hs
module SFML.Graphics.BlendMode
(
BlendMode(..)
)
where
import Foreign.C.Types (CInt)
import Foreign.Ptr
import Foreign.Storable
-- | Available blending modes for drawing.
data BlendMode
= BlendAlpha -- ^ Pixel = Src * a + Dest * (1 - a)
| BlendAdd -- ^ Pixel = Src + Dest
| BlendMultiply -- ^ Pixel = Src * Dest
| BlendNone -- ^ No blending
deriving (Eq, Enum, Bounded, Show)
instance Storable BlendMode where
sizeOf _ = sizeOf (undefined :: CInt)
alignment _ = alignment (undefined :: CInt)
peek ptr = fmap (toEnum . fromIntegral) $ peek (castPtr ptr :: Ptr CInt)
poke ptr bm = poke (castPtr ptr :: Ptr CInt) (fromIntegral . fromEnum $ bm)
{-typedef enum
{
sfBlendAlpha, ///< Pixel = Src * a + Dest * (1 - a)
sfBlendAdd, ///< Pixel = Src + Dest
sfBlendMultiply, ///< Pixel = Src * Dest
sfBlendNone ///< No blending
} sfBlendMode;-}