-- | Blending stuff. -- -- -- 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 }