caramia-0.2.0.0: src/Graphics/Caramia/Blend.hs
-- | Blending stuff.
--
-- <https://www.opengl.org/wiki/Blending>
--
module Graphics.Caramia.Blend
(
-- * Data types
BlendSpec(..)
, BlendEquation(..)
, BlendFunc(..)
-- * Pre-defined blending specs
, preMultipliedAlpha
, nopBlend )
where
--import Graphics.Caramia.Prelude
import Graphics.Caramia.Blend.Internal
import Graphics.Caramia.Color
preMultipliedAlpha :: BlendSpec
preMultipliedAlpha = BlendSpec
{ srcColorFunc = BFOne
, srcAlphaFunc = BFOne
, dstColorFunc = BFOneMinusSrcAlpha
, dstAlphaFunc = BFOneMinusSrcAlpha
, colorEquation = BEAdd
, alphaEquation = BEAdd
, blendColor = rgba 1 1 1 1 }
-- | Blending that doesn't do anything special; just copies the source pixel to
-- destination.
nopBlend :: BlendSpec
nopBlend = BlendSpec
{ srcColorFunc = BFOne
, srcAlphaFunc = BFOne
, dstColorFunc = BFZero
, dstAlphaFunc = BFZero
, colorEquation = BEAdd
, alphaEquation = BEAdd
, blendColor = rgba 1 1 1 1 }