{-# OPTIONS_HADDOCK hide #-}
module Brillo.Internals.Rendering.Color where
import Brillo.Internals.Data.Color (Color (..))
import Graphics.Rendering.OpenGL.GL qualified as GL
import Unsafe.Coerce (unsafeCoerce)
glColor4OfColor :: Color -> GL.Color4 a
glColor4OfColor :: forall a. Color -> Color4 a
glColor4OfColor Color
color =
case Color
color of
RGBA Float
r Float
g Float
b Float
a ->
let rF :: b
rF = Float -> b
forall a b. a -> b
unsafeCoerce Float
r
gF :: b
gF = Float -> b
forall a b. a -> b
unsafeCoerce Float
g
bF :: b
bF = Float -> b
forall a b. a -> b
unsafeCoerce Float
b
aF :: b
aF = Float -> b
forall a b. a -> b
unsafeCoerce Float
a
in a -> a -> a -> a -> Color4 a
forall a. a -> a -> a -> a -> Color4 a
GL.Color4 a
forall {b}. b
rF a
forall {b}. b
gF a
forall {b}. b
bF a
forall {b}. b
aF
{-# INLINE glColor4OfColor #-}