30 lines
539 B
Haskell
30 lines
539 B
Haskell
module Affection.Types
|
|
( RGBA
|
|
, newRGBA
|
|
, getR
|
|
, getG
|
|
, getB
|
|
, getA
|
|
) where
|
|
|
|
data RGBA = RGBA Int Int Int Int
|
|
|
|
newRGBA :: Int -> Int -> Int -> Int -> RGBA
|
|
newRGBA r g b a = RGBA (overflow r) (overflow g) (overflow b) (overflow a)
|
|
where
|
|
overflow x
|
|
| x < 0 = x - (x `div` 256) * 255 + 1
|
|
| otherwise = x - (x `div` 256) * 255
|
|
|
|
getR :: RGBA -> Int
|
|
getR (RGBA r _ _ _) = r
|
|
|
|
getG :: RGBA -> Int
|
|
getG (RGBA _ g _ _) = g
|
|
|
|
getB :: RGBA -> Int
|
|
getB (RGBA _ _ b _) = b
|
|
|
|
getA :: RGBA -> Int
|
|
getA (RGBA _ _ _ a) = a
|