module Visual where
import HbcWord

data DisplayClass
  = StaticGray | GrayScale
  | StaticColor | PseudoColor
  | TrueColor | DirectColor
  deriving (DisplayClass -> DisplayClass -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisplayClass -> DisplayClass -> Bool
$c/= :: DisplayClass -> DisplayClass -> Bool
== :: DisplayClass -> DisplayClass -> Bool
$c== :: DisplayClass -> DisplayClass -> Bool
Eq,Int -> DisplayClass -> ShowS
[DisplayClass] -> ShowS
DisplayClass -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisplayClass] -> ShowS
$cshowList :: [DisplayClass] -> ShowS
show :: DisplayClass -> String
$cshow :: DisplayClass -> String
showsPrec :: Int -> DisplayClass -> ShowS
$cshowsPrec :: Int -> DisplayClass -> ShowS
Show,ReadPrec [DisplayClass]
ReadPrec DisplayClass
Int -> ReadS DisplayClass
ReadS [DisplayClass]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisplayClass]
$creadListPrec :: ReadPrec [DisplayClass]
readPrec :: ReadPrec DisplayClass
$creadPrec :: ReadPrec DisplayClass
readList :: ReadS [DisplayClass]
$creadList :: ReadS [DisplayClass]
readsPrec :: Int -> ReadS DisplayClass
$creadsPrec :: Int -> ReadS DisplayClass
Read,DisplayClass
forall a. a -> a -> Bounded a
maxBound :: DisplayClass
$cmaxBound :: DisplayClass
minBound :: DisplayClass
$cminBound :: DisplayClass
Bounded,Int -> DisplayClass
DisplayClass -> Int
DisplayClass -> [DisplayClass]
DisplayClass -> DisplayClass
DisplayClass -> DisplayClass -> [DisplayClass]
DisplayClass -> DisplayClass -> DisplayClass -> [DisplayClass]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: DisplayClass -> DisplayClass -> DisplayClass -> [DisplayClass]
$cenumFromThenTo :: DisplayClass -> DisplayClass -> DisplayClass -> [DisplayClass]
enumFromTo :: DisplayClass -> DisplayClass -> [DisplayClass]
$cenumFromTo :: DisplayClass -> DisplayClass -> [DisplayClass]
enumFromThen :: DisplayClass -> DisplayClass -> [DisplayClass]
$cenumFromThen :: DisplayClass -> DisplayClass -> [DisplayClass]
enumFrom :: DisplayClass -> [DisplayClass]
$cenumFrom :: DisplayClass -> [DisplayClass]
fromEnum :: DisplayClass -> Int
$cfromEnum :: DisplayClass -> Int
toEnum :: Int -> DisplayClass
$ctoEnum :: Int -> DisplayClass
pred :: DisplayClass -> DisplayClass
$cpred :: DisplayClass -> DisplayClass
succ :: DisplayClass -> DisplayClass
$csucc :: DisplayClass -> DisplayClass
Enum)

newtype VisualID = VisualID Int deriving (VisualID -> VisualID -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VisualID -> VisualID -> Bool
$c/= :: VisualID -> VisualID -> Bool
== :: VisualID -> VisualID -> Bool
$c== :: VisualID -> VisualID -> Bool
Eq,Int -> VisualID -> ShowS
[VisualID] -> ShowS
VisualID -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VisualID] -> ShowS
$cshowList :: [VisualID] -> ShowS
show :: VisualID -> String
$cshow :: VisualID -> String
showsPrec :: Int -> VisualID -> ShowS
$cshowsPrec :: Int -> VisualID -> ShowS
Show,ReadPrec [VisualID]
ReadPrec VisualID
Int -> ReadS VisualID
ReadS [VisualID]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VisualID]
$creadListPrec :: ReadPrec [VisualID]
readPrec :: ReadPrec VisualID
$creadPrec :: ReadPrec VisualID
readList :: ReadS [VisualID]
$creadList :: ReadS [VisualID]
readsPrec :: Int -> ReadS VisualID
$creadsPrec :: Int -> ReadS VisualID
Read)

data Visual
  = Visual { Visual -> VisualID
visualid :: VisualID,
	     Visual -> DisplayClass
visualClass :: DisplayClass,
	     Visual -> Word
red_mask,Visual -> Word
green_mask,Visual -> Word
blue_mask :: Word,
	     Visual -> Int
bits_per_rgb :: Int,
	     Visual -> Int
map_entries :: Int
	   }
  deriving (Int -> Visual -> ShowS
[Visual] -> ShowS
Visual -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Visual] -> ShowS
$cshowList :: [Visual] -> ShowS
show :: Visual -> String
$cshow :: Visual -> String
showsPrec :: Int -> Visual -> ShowS
$cshowsPrec :: Int -> Visual -> ShowS
Show,ReadPrec [Visual]
ReadPrec Visual
Int -> ReadS Visual
ReadS [Visual]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Visual]
$creadListPrec :: ReadPrec [Visual]
readPrec :: ReadPrec Visual
$creadPrec :: ReadPrec Visual
readList :: ReadS [Visual]
$creadList :: ReadS [Visual]
readsPrec :: Int -> ReadS Visual
$creadsPrec :: Int -> ReadS Visual
Read)