module Codec.Ktx2.DFD.Khronos.BasicV2 where
import Data.Binary (Binary(..))
import Data.Binary.Get (Get, getWord8, getWord16le, getWord32le, runGetOrFail)
import Data.Binary.Put (PutM, putWord8, putWord16le, putWord32le, runPut)
import Data.ByteString qualified as BS
import Data.ByteString.Lazy qualified as BSL
import Data.ByteString.Lazy qualified as LBS
import Data.Vector (Vector)
import Data.Vector qualified as Vector
import Data.Word (Word8, Word16, Word32)
import GHC.Generics (Generic)
import Codec.Ktx2.DFD qualified as DFD
pattern VENDOR_ID :: (Eq a, Num a) => a
pattern $bVENDOR_ID :: forall a. (Eq a, Num a) => a
$mVENDOR_ID :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID = 0
pattern DESCRIPTOR_TYPE :: (Eq a, Num a) => a
pattern $bDESCRIPTOR_TYPE :: forall a. (Eq a, Num a) => a
$mDESCRIPTOR_TYPE :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_TYPE = 0
pattern VERSION :: (Eq a, Num a) => a
pattern $bVERSION :: forall a. (Eq a, Num a) => a
$mVERSION :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
VERSION = 2
data BasicV2 = BasicV2
{ BasicV2 -> Word8
colorModel :: Word8
, BasicV2 -> Word8
colorPrimaries :: Word8
, BasicV2 -> Word8
transferFunction :: Word8
, BasicV2 -> Word8
flags :: Word8
, BasicV2 -> Word8
texelBlockDimension0 :: Word8
, BasicV2 -> Word8
texelBlockDimension1 :: Word8
, BasicV2 -> Word8
texelBlockDimension2 :: Word8
, BasicV2 -> Word8
texelBlockDimension3 :: Word8
, BasicV2 -> Word8
bytesPlane0 :: Word8
, BasicV2 -> Word8
bytesPlane1 :: Word8
, BasicV2 -> Word8
bytesPlane2 :: Word8
, BasicV2 -> Word8
bytesPlane3 :: Word8
, BasicV2 -> Word8
bytesPlane4 :: Word8
, BasicV2 -> Word8
bytesPlane5 :: Word8
, BasicV2 -> Word8
bytesPlane6 :: Word8
, BasicV2 -> Word8
bytesPlane7 :: Word8
, BasicV2 -> Vector Sample
samples :: Vector Sample
}
deriving (BasicV2 -> BasicV2 -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BasicV2 -> BasicV2 -> Bool
$c/= :: BasicV2 -> BasicV2 -> Bool
== :: BasicV2 -> BasicV2 -> Bool
$c== :: BasicV2 -> BasicV2 -> Bool
Eq, Int -> BasicV2 -> ShowS
[BasicV2] -> ShowS
BasicV2 -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BasicV2] -> ShowS
$cshowList :: [BasicV2] -> ShowS
show :: BasicV2 -> String
$cshow :: BasicV2 -> String
showsPrec :: Int -> BasicV2 -> ShowS
$cshowsPrec :: Int -> BasicV2 -> ShowS
Show, forall x. Rep BasicV2 x -> BasicV2
forall x. BasicV2 -> Rep BasicV2 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BasicV2 x -> BasicV2
$cfrom :: forall x. BasicV2 -> Rep BasicV2 x
Generic)
getter :: Int -> Get BasicV2
getter :: Int -> Get BasicV2
getter Int
numSamples = do
Word8
colorModel <- Get Word8
getWord8
Word8
colorPrimaries <- Get Word8
getWord8
Word8
transferFunction <- Get Word8
getWord8
Word8
flags <- Get Word8
getWord8
Word8
texelBlockDimension0 <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. Num a => a -> a -> a
+ Word8
1) Get Word8
getWord8
Word8
texelBlockDimension1 <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. Num a => a -> a -> a
+ Word8
1) Get Word8
getWord8
Word8
texelBlockDimension2 <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. Num a => a -> a -> a
+ Word8
1) Get Word8
getWord8
Word8
texelBlockDimension3 <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. Num a => a -> a -> a
+ Word8
1) Get Word8
getWord8
Word8
bytesPlane0 <- Get Word8
getWord8
Word8
bytesPlane1 <- Get Word8
getWord8
Word8
bytesPlane2 <- Get Word8
getWord8
Word8
bytesPlane3 <- Get Word8
getWord8
Word8
bytesPlane4 <- Get Word8
getWord8
Word8
bytesPlane5 <- Get Word8
getWord8
Word8
bytesPlane6 <- Get Word8
getWord8
Word8
bytesPlane7 <- Get Word8
getWord8
Vector Sample
samples <- forall (m :: * -> *) a. Monad m => Int -> m a -> m (Vector a)
Vector.replicateM Int
numSamples forall t. Binary t => Get t
get
pure BasicV2{Word8
Vector Sample
samples :: Vector Sample
bytesPlane7 :: Word8
bytesPlane6 :: Word8
bytesPlane5 :: Word8
bytesPlane4 :: Word8
bytesPlane3 :: Word8
bytesPlane2 :: Word8
bytesPlane1 :: Word8
bytesPlane0 :: Word8
texelBlockDimension3 :: Word8
texelBlockDimension2 :: Word8
texelBlockDimension1 :: Word8
texelBlockDimension0 :: Word8
flags :: Word8
transferFunction :: Word8
colorPrimaries :: Word8
colorModel :: Word8
samples :: Vector Sample
bytesPlane7 :: Word8
bytesPlane6 :: Word8
bytesPlane5 :: Word8
bytesPlane4 :: Word8
bytesPlane3 :: Word8
bytesPlane2 :: Word8
bytesPlane1 :: Word8
bytesPlane0 :: Word8
texelBlockDimension3 :: Word8
texelBlockDimension2 :: Word8
texelBlockDimension1 :: Word8
texelBlockDimension0 :: Word8
flags :: Word8
transferFunction :: Word8
colorPrimaries :: Word8
colorModel :: Word8
..}
putter :: BasicV2 -> PutM ()
putter :: BasicV2 -> PutM ()
putter BasicV2{Word8
Vector Sample
samples :: Vector Sample
bytesPlane7 :: Word8
bytesPlane6 :: Word8
bytesPlane5 :: Word8
bytesPlane4 :: Word8
bytesPlane3 :: Word8
bytesPlane2 :: Word8
bytesPlane1 :: Word8
bytesPlane0 :: Word8
texelBlockDimension3 :: Word8
texelBlockDimension2 :: Word8
texelBlockDimension1 :: Word8
texelBlockDimension0 :: Word8
flags :: Word8
transferFunction :: Word8
colorPrimaries :: Word8
colorModel :: Word8
samples :: BasicV2 -> Vector Sample
bytesPlane7 :: BasicV2 -> Word8
bytesPlane6 :: BasicV2 -> Word8
bytesPlane5 :: BasicV2 -> Word8
bytesPlane4 :: BasicV2 -> Word8
bytesPlane3 :: BasicV2 -> Word8
bytesPlane2 :: BasicV2 -> Word8
bytesPlane1 :: BasicV2 -> Word8
bytesPlane0 :: BasicV2 -> Word8
texelBlockDimension3 :: BasicV2 -> Word8
texelBlockDimension2 :: BasicV2 -> Word8
texelBlockDimension1 :: BasicV2 -> Word8
texelBlockDimension0 :: BasicV2 -> Word8
flags :: BasicV2 -> Word8
transferFunction :: BasicV2 -> Word8
colorPrimaries :: BasicV2 -> Word8
colorModel :: BasicV2 -> Word8
..} = do
Word8 -> PutM ()
putWord8 Word8
colorModel
Word8 -> PutM ()
putWord8 Word8
colorPrimaries
Word8 -> PutM ()
putWord8 Word8
transferFunction
Word8 -> PutM ()
putWord8 Word8
flags
Word8 -> PutM ()
putWord8 forall a b. (a -> b) -> a -> b
$ Word8
texelBlockDimension0 forall a. Num a => a -> a -> a
- Word8
1
Word8 -> PutM ()
putWord8 forall a b. (a -> b) -> a -> b
$ Word8
texelBlockDimension1 forall a. Num a => a -> a -> a
- Word8
1
Word8 -> PutM ()
putWord8 forall a b. (a -> b) -> a -> b
$ Word8
texelBlockDimension2 forall a. Num a => a -> a -> a
- Word8
1
Word8 -> PutM ()
putWord8 forall a b. (a -> b) -> a -> b
$ Word8
texelBlockDimension3 forall a. Num a => a -> a -> a
- Word8
1
Word8 -> PutM ()
putWord8 Word8
bytesPlane0
Word8 -> PutM ()
putWord8 Word8
bytesPlane1
Word8 -> PutM ()
putWord8 Word8
bytesPlane2
Word8 -> PutM ()
putWord8 Word8
bytesPlane3
Word8 -> PutM ()
putWord8 Word8
bytesPlane4
Word8 -> PutM ()
putWord8 Word8
bytesPlane5
Word8 -> PutM ()
putWord8 Word8
bytesPlane6
Word8 -> PutM ()
putWord8 Word8
bytesPlane7
forall (m :: * -> *) a b. Monad m => (a -> m b) -> Vector a -> m ()
Vector.mapM_ forall t. Binary t => t -> PutM ()
put Vector Sample
samples
data Sample = Sample
{ Sample -> Word16
bitOffset :: Word16
, Sample -> Word8
bitLength :: Word8
, Sample -> Word8
channelType :: Word8
, Sample -> Word8
samplePosition0 :: Word8
, Sample -> Word8
samplePosition1 :: Word8
, Sample -> Word8
samplePosition2 :: Word8
, Sample -> Word8
samplePosition3 :: Word8
, Sample -> Word32
sampleLower :: Word32
, Sample -> Word32
sampleUpper :: Word32
}
deriving (Sample -> Sample -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Sample -> Sample -> Bool
$c/= :: Sample -> Sample -> Bool
== :: Sample -> Sample -> Bool
$c== :: Sample -> Sample -> Bool
Eq, Int -> Sample -> ShowS
[Sample] -> ShowS
Sample -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Sample] -> ShowS
$cshowList :: [Sample] -> ShowS
show :: Sample -> String
$cshow :: Sample -> String
showsPrec :: Int -> Sample -> ShowS
$cshowsPrec :: Int -> Sample -> ShowS
Show, forall x. Rep Sample x -> Sample
forall x. Sample -> Rep Sample x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Sample x -> Sample
$cfrom :: forall x. Sample -> Rep Sample x
Generic)
instance Binary Sample where
get :: Get Sample
get = do
Word16
bitOffset <- Get Word16
getWord16le
Word8
bitLength <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. Num a => a -> a -> a
+Word8
1) Get Word8
getWord8
Word8
channelType <- Get Word8
getWord8
Word8
samplePosition0 <- Get Word8
getWord8
Word8
samplePosition1 <- Get Word8
getWord8
Word8
samplePosition2 <- Get Word8
getWord8
Word8
samplePosition3 <- Get Word8
getWord8
Word32
sampleLower <- Get Word32
getWord32le
Word32
sampleUpper <- Get Word32
getWord32le
pure Sample{Word8
Word16
Word32
sampleUpper :: Word32
sampleLower :: Word32
samplePosition3 :: Word8
samplePosition2 :: Word8
samplePosition1 :: Word8
samplePosition0 :: Word8
channelType :: Word8
bitLength :: Word8
bitOffset :: Word16
sampleUpper :: Word32
sampleLower :: Word32
samplePosition3 :: Word8
samplePosition2 :: Word8
samplePosition1 :: Word8
samplePosition0 :: Word8
channelType :: Word8
bitLength :: Word8
bitOffset :: Word16
..}
put :: Sample -> PutM ()
put Sample{Word8
Word16
Word32
sampleUpper :: Word32
sampleLower :: Word32
samplePosition3 :: Word8
samplePosition2 :: Word8
samplePosition1 :: Word8
samplePosition0 :: Word8
channelType :: Word8
bitLength :: Word8
bitOffset :: Word16
sampleUpper :: Sample -> Word32
sampleLower :: Sample -> Word32
samplePosition3 :: Sample -> Word8
samplePosition2 :: Sample -> Word8
samplePosition1 :: Sample -> Word8
samplePosition0 :: Sample -> Word8
channelType :: Sample -> Word8
bitLength :: Sample -> Word8
bitOffset :: Sample -> Word16
..} = do
Word16 -> PutM ()
putWord16le Word16
bitOffset
Word8 -> PutM ()
putWord8 forall a b. (a -> b) -> a -> b
$ Word8
bitLength forall a. Num a => a -> a -> a
- Word8
1
Word8 -> PutM ()
putWord8 Word8
channelType
Word8 -> PutM ()
putWord8 Word8
samplePosition0
Word8 -> PutM ()
putWord8 Word8
samplePosition1
Word8 -> PutM ()
putWord8 Word8
samplePosition2
Word8 -> PutM ()
putWord8 Word8
samplePosition3
Word32 -> PutM ()
putWord32le Word32
sampleLower
Word32 -> PutM ()
putWord32le Word32
sampleUpper
fromBlock :: DFD.Block -> Maybe BasicV2
fromBlock :: Block -> Maybe BasicV2
fromBlock DFD.Block{Word32
descriptorBlockSize :: Block -> Word32
descriptorBlockSize :: Word32
descriptorBlockSize, ByteString
body :: Block -> ByteString
body :: ByteString
body} =
case forall a.
Get a
-> ByteString
-> Either
(ByteString, ByteOffset, String) (ByteString, ByteOffset, a)
runGetOrFail (Int -> Get BasicV2
getter Int
numSamples) ([ByteString] -> ByteString
LBS.fromChunks [ByteString
body]) of
Left (ByteString, ByteOffset, String)
_err ->
forall a. Maybe a
Nothing
Right (ByteString
_bytes, ByteOffset
_offset, BasicV2
ok) ->
forall a. a -> Maybe a
Just BasicV2
ok
where
numSamples :: Int
numSamples =
forall a. Integral a => a -> a -> a
div (forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
descriptorBlockSize forall a. Num a => a -> a -> a
- Int
24) Int
16
toBlock :: BasicV2 -> DFD.Block
toBlock :: BasicV2 -> Block
toBlock BasicV2
v2 =
DFD.Block
{ descriptorType :: Word32
descriptorType =
forall a. (Eq a, Num a) => a
DESCRIPTOR_TYPE
, vendorId :: Word32
vendorId =
forall a. (Eq a, Num a) => a
VENDOR_ID
, versionNumber :: Word32
versionNumber =
forall a. (Eq a, Num a) => a
VERSION
, descriptorBlockSize :: Word32
descriptorBlockSize =
forall a b. (Integral a, Num b) => a -> b
fromIntegral forall a b. (a -> b) -> a -> b
$ ByteString -> Int
BS.length ByteString
body forall a. Num a => a -> a -> a
+ Int
8
, body :: ByteString
body =
ByteString
body
}
where
body :: ByteString
body = ByteString -> ByteString
BSL.toStrict forall b c a. (b -> c) -> (a -> b) -> a -> c
. PutM () -> ByteString
runPut forall a b. (a -> b) -> a -> b
$ BasicV2 -> PutM ()
putter BasicV2
v2
unspecified :: BasicV2
unspecified :: BasicV2
unspecified = BasicV2
{ colorModel :: Word8
colorModel = Word8
KHR_DF_MODEL_UNSPECIFIED
, colorPrimaries :: Word8
colorPrimaries = Word8
KHR_DF_PRIMARIES_UNSPECIFIED
, transferFunction :: Word8
transferFunction = Word8
KHR_DF_TRANSFER_LINEAR
, flags :: Word8
flags = Word8
KHR_DF_FLAG_ALPHA_STRAIGHT
, texelBlockDimension0 :: Word8
texelBlockDimension0 = Word8
1
, texelBlockDimension1 :: Word8
texelBlockDimension1 = Word8
1
, texelBlockDimension2 :: Word8
texelBlockDimension2 = Word8
1
, texelBlockDimension3 :: Word8
texelBlockDimension3 = Word8
1
, bytesPlane0 :: Word8
bytesPlane0 = Word8
0
, bytesPlane1 :: Word8
bytesPlane1 = Word8
0
, bytesPlane2 :: Word8
bytesPlane2 = Word8
0
, bytesPlane3 :: Word8
bytesPlane3 = Word8
0
, bytesPlane4 :: Word8
bytesPlane4 = Word8
0
, bytesPlane5 :: Word8
bytesPlane5 = Word8
0
, bytesPlane6 :: Word8
bytesPlane6 = Word8
0
, bytesPlane7 :: Word8
bytesPlane7 = Word8
0
, samples :: Vector Sample
samples = forall a. Monoid a => a
mempty
}
pattern KHR_DF_MODEL_UNSPECIFIED :: Word8
pattern $bKHR_DF_MODEL_UNSPECIFIED :: Word8
$mKHR_DF_MODEL_UNSPECIFIED :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_UNSPECIFIED = 0
pattern KHR_DF_MODEL_RGBSDA :: Word8
pattern $bKHR_DF_MODEL_RGBSDA :: Word8
$mKHR_DF_MODEL_RGBSDA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_RGBSDA = 1
pattern KHR_DF_MODEL_YUVSDA :: Word8
pattern $bKHR_DF_MODEL_YUVSDA :: Word8
$mKHR_DF_MODEL_YUVSDA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_YUVSDA = 2
pattern KHR_DF_MODEL_YIQSDA :: Word8
pattern $bKHR_DF_MODEL_YIQSDA :: Word8
$mKHR_DF_MODEL_YIQSDA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_YIQSDA = 3
pattern KHR_DF_MODEL_LABSDA :: Word8
pattern $bKHR_DF_MODEL_LABSDA :: Word8
$mKHR_DF_MODEL_LABSDA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_LABSDA = 4
pattern KHR_DF_MODEL_CMYKA :: Word8
pattern $bKHR_DF_MODEL_CMYKA :: Word8
$mKHR_DF_MODEL_CMYKA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_CMYKA = 5
pattern KHR_DF_MODEL_XYZW :: Word8
pattern $bKHR_DF_MODEL_XYZW :: Word8
$mKHR_DF_MODEL_XYZW :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_XYZW = 6
pattern KHR_DF_MODEL_HSVA_ANG :: Word8
pattern $bKHR_DF_MODEL_HSVA_ANG :: Word8
$mKHR_DF_MODEL_HSVA_ANG :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_HSVA_ANG = 7
pattern KHR_DF_MODEL_HSLA_ANG :: Word8
pattern $bKHR_DF_MODEL_HSLA_ANG :: Word8
$mKHR_DF_MODEL_HSLA_ANG :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_HSLA_ANG = 8
pattern KHR_DF_MODEL_HSVA_HEX :: Word8
pattern $bKHR_DF_MODEL_HSVA_HEX :: Word8
$mKHR_DF_MODEL_HSVA_HEX :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_HSVA_HEX = 9
pattern KHR_DF_MODEL_HSLA_HEX :: Word8
pattern $bKHR_DF_MODEL_HSLA_HEX :: Word8
$mKHR_DF_MODEL_HSLA_HEX :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_HSLA_HEX = 10
pattern KHR_DF_MODEL_YCGCOA :: Word8
pattern $bKHR_DF_MODEL_YCGCOA :: Word8
$mKHR_DF_MODEL_YCGCOA :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_YCGCOA = 11
pattern KHR_DF_MODEL_YCCBCCRC :: Word8
pattern $bKHR_DF_MODEL_YCCBCCRC :: Word8
$mKHR_DF_MODEL_YCCBCCRC :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_YCCBCCRC = 12
pattern KHR_DF_MODEL_ICTCP :: Word8
pattern $bKHR_DF_MODEL_ICTCP :: Word8
$mKHR_DF_MODEL_ICTCP :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_ICTCP = 13
pattern KHR_DF_MODEL_CIEXYZ :: Word8
pattern $bKHR_DF_MODEL_CIEXYZ :: Word8
$mKHR_DF_MODEL_CIEXYZ :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_CIEXYZ = 14
pattern KHR_DF_MODEL_CIEXYY :: Word8
pattern $bKHR_DF_MODEL_CIEXYY :: Word8
$mKHR_DF_MODEL_CIEXYY :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_CIEXYY = 15
pattern KHR_DF_MODEL_DXT1A :: Word8
pattern $bKHR_DF_MODEL_DXT1A :: Word8
$mKHR_DF_MODEL_DXT1A :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_DXT1A = 128
pattern KHR_DF_MODEL_BC1A :: Word8
pattern $bKHR_DF_MODEL_BC1A :: Word8
$mKHR_DF_MODEL_BC1A :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC1A = KHR_DF_MODEL_DXT1A
pattern KHR_DF_MODEL_DXT2 :: Word8
pattern $bKHR_DF_MODEL_DXT2 :: Word8
$mKHR_DF_MODEL_DXT2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_DXT2 = 129
pattern KHR_DF_MODEL_DXT3 :: Word8
pattern $bKHR_DF_MODEL_DXT3 :: Word8
$mKHR_DF_MODEL_DXT3 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_DXT3 = KHR_DF_MODEL_DXT2
pattern KHR_DF_MODEL_BC2 :: Word8
pattern $bKHR_DF_MODEL_BC2 :: Word8
$mKHR_DF_MODEL_BC2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC2 = KHR_DF_MODEL_DXT2
pattern KHR_DF_MODEL_DXT4 :: Word8
pattern $bKHR_DF_MODEL_DXT4 :: Word8
$mKHR_DF_MODEL_DXT4 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_DXT4 = 130
pattern KHR_DF_MODEL_DXT5 :: Word8
pattern $bKHR_DF_MODEL_DXT5 :: Word8
$mKHR_DF_MODEL_DXT5 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_DXT5 = KHR_DF_MODEL_DXT4
pattern KHR_DF_MODEL_BC3 :: Word8
pattern $bKHR_DF_MODEL_BC3 :: Word8
$mKHR_DF_MODEL_BC3 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC3 = KHR_DF_MODEL_DXT4
pattern KHR_DF_MODEL_BC4 :: Word8
pattern $bKHR_DF_MODEL_BC4 :: Word8
$mKHR_DF_MODEL_BC4 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC4 = 131
pattern KHR_DF_MODEL_BC5 :: Word8
pattern $bKHR_DF_MODEL_BC5 :: Word8
$mKHR_DF_MODEL_BC5 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC5 = 132
pattern KHR_DF_MODEL_BC6H :: Word8
pattern $bKHR_DF_MODEL_BC6H :: Word8
$mKHR_DF_MODEL_BC6H :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC6H = 133
pattern KHR_DF_MODEL_BC7 :: Word8
pattern $bKHR_DF_MODEL_BC7 :: Word8
$mKHR_DF_MODEL_BC7 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_BC7 = 134
pattern KHR_DF_MODEL_ETC1 :: Word8
pattern $bKHR_DF_MODEL_ETC1 :: Word8
$mKHR_DF_MODEL_ETC1 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_ETC1 = 160
pattern KHR_DF_MODEL_ETC2 :: Word8
pattern $bKHR_DF_MODEL_ETC2 :: Word8
$mKHR_DF_MODEL_ETC2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_ETC2 = 161
pattern KHR_DF_MODEL_ASTC2 :: Word8
pattern $bKHR_DF_MODEL_ASTC2 :: Word8
$mKHR_DF_MODEL_ASTC2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_ASTC2 = 162
pattern KHR_DF_MODEL_ETC1S :: Word8
pattern $bKHR_DF_MODEL_ETC1S :: Word8
$mKHR_DF_MODEL_ETC1S :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_ETC1S = 163
pattern KHR_DF_MODEL_PVRTC :: Word8
pattern $bKHR_DF_MODEL_PVRTC :: Word8
$mKHR_DF_MODEL_PVRTC :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_PVRTC = 164
pattern KHR_DF_MODEL_PVRTC2 :: Word8
pattern $bKHR_DF_MODEL_PVRTC2 :: Word8
$mKHR_DF_MODEL_PVRTC2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_MODEL_PVRTC2 = 165
pattern KHR_DF_PRIMARIES_UNSPECIFIED :: Word8
pattern $bKHR_DF_PRIMARIES_UNSPECIFIED :: Word8
$mKHR_DF_PRIMARIES_UNSPECIFIED :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_UNSPECIFIED = 0
pattern KHR_DF_PRIMARIES_BT709 :: Word8
pattern $bKHR_DF_PRIMARIES_BT709 :: Word8
$mKHR_DF_PRIMARIES_BT709 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_BT709 = 1
pattern KHR_DF_PRIMARIES_SRGB :: Word8
pattern $bKHR_DF_PRIMARIES_SRGB :: Word8
$mKHR_DF_PRIMARIES_SRGB :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_SRGB = KHR_DF_PRIMARIES_BT709
pattern KHR_DF_PRIMARIES_BT601_EBU :: Word8
pattern $bKHR_DF_PRIMARIES_BT601_EBU :: Word8
$mKHR_DF_PRIMARIES_BT601_EBU :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_BT601_EBU = 2
pattern KHR_DF_PRIMARIES_BT601_SMPTE :: Word8
pattern $bKHR_DF_PRIMARIES_BT601_SMPTE :: Word8
$mKHR_DF_PRIMARIES_BT601_SMPTE :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_BT601_SMPTE = 3
pattern KHR_DF_PRIMARIES_BT2020 :: Word8
pattern $bKHR_DF_PRIMARIES_BT2020 :: Word8
$mKHR_DF_PRIMARIES_BT2020 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_BT2020 = 4
pattern KHR_DF_PRIMARIES_CIEXYZ :: Word8
pattern $bKHR_DF_PRIMARIES_CIEXYZ :: Word8
$mKHR_DF_PRIMARIES_CIEXYZ :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_CIEXYZ = 5
pattern KHR_DF_PRIMARIES_ACES :: Word8
pattern $bKHR_DF_PRIMARIES_ACES :: Word8
$mKHR_DF_PRIMARIES_ACES :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_ACES = 6
pattern KHR_DF_PRIMARIES_ACESCC :: Word8
pattern $bKHR_DF_PRIMARIES_ACESCC :: Word8
$mKHR_DF_PRIMARIES_ACESCC :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_ACESCC = 7
pattern KHR_DF_PRIMARIES_NTSC1953 :: Word8
pattern $bKHR_DF_PRIMARIES_NTSC1953 :: Word8
$mKHR_DF_PRIMARIES_NTSC1953 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_NTSC1953 = 8
pattern KHR_DF_PRIMARIES_PAL525 :: Word8
pattern $bKHR_DF_PRIMARIES_PAL525 :: Word8
$mKHR_DF_PRIMARIES_PAL525 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_PAL525 = 9
pattern KHR_DF_PRIMARIES_DISPLAYP3 :: Word8
pattern $bKHR_DF_PRIMARIES_DISPLAYP3 :: Word8
$mKHR_DF_PRIMARIES_DISPLAYP3 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_DISPLAYP3 = 10
pattern KHR_DF_PRIMARIES_ADOBERGB :: Word8
pattern $bKHR_DF_PRIMARIES_ADOBERGB :: Word8
$mKHR_DF_PRIMARIES_ADOBERGB :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_PRIMARIES_ADOBERGB = 11
pattern KHR_DF_TRANSFER_UNSPECIFIED :: Word8
pattern $bKHR_DF_TRANSFER_UNSPECIFIED :: Word8
$mKHR_DF_TRANSFER_UNSPECIFIED :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_UNSPECIFIED = 0
pattern KHR_DF_TRANSFER_LINEAR :: Word8
pattern $bKHR_DF_TRANSFER_LINEAR :: Word8
$mKHR_DF_TRANSFER_LINEAR :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_LINEAR = 1
pattern KHR_DF_TRANSFER_SRGB :: Word8
pattern $bKHR_DF_TRANSFER_SRGB :: Word8
$mKHR_DF_TRANSFER_SRGB :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_SRGB = 2
pattern KHR_DF_TRANSFER_ITU :: Word8
pattern $bKHR_DF_TRANSFER_ITU :: Word8
$mKHR_DF_TRANSFER_ITU :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_ITU = 3
pattern KHR_DF_TRANSFER_NTSC :: Word8
pattern $bKHR_DF_TRANSFER_NTSC :: Word8
$mKHR_DF_TRANSFER_NTSC :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_NTSC = 4
pattern KHR_DF_TRANSFER_SLOG :: Word8
pattern $bKHR_DF_TRANSFER_SLOG :: Word8
$mKHR_DF_TRANSFER_SLOG :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_SLOG = 5
pattern KHR_DF_TRANSFER_SLOG2 :: Word8
pattern $bKHR_DF_TRANSFER_SLOG2 :: Word8
$mKHR_DF_TRANSFER_SLOG2 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_SLOG2 = 6
pattern KHR_DF_TRANSFER_BT1886 :: Word8
pattern $bKHR_DF_TRANSFER_BT1886 :: Word8
$mKHR_DF_TRANSFER_BT1886 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_BT1886 = 7
pattern KHR_DF_TRANSFER_HLG_OETF :: Word8
pattern $bKHR_DF_TRANSFER_HLG_OETF :: Word8
$mKHR_DF_TRANSFER_HLG_OETF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_HLG_OETF = 8
pattern KHR_DF_TRANSFER_HLG_EOTF :: Word8
pattern $bKHR_DF_TRANSFER_HLG_EOTF :: Word8
$mKHR_DF_TRANSFER_HLG_EOTF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_HLG_EOTF = 9
pattern KHR_DF_TRANSFER_PQ_EOTF :: Word8
pattern $bKHR_DF_TRANSFER_PQ_EOTF :: Word8
$mKHR_DF_TRANSFER_PQ_EOTF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_PQ_EOTF = 10
pattern KHR_DF_TRANSFER_PQ_OETF :: Word8
pattern $bKHR_DF_TRANSFER_PQ_OETF :: Word8
$mKHR_DF_TRANSFER_PQ_OETF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_PQ_OETF = 11
pattern KHR_DF_TRANSFER_DCIP3 :: Word8
pattern $bKHR_DF_TRANSFER_DCIP3 :: Word8
$mKHR_DF_TRANSFER_DCIP3 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_DCIP3 = 12
pattern KHR_DF_TRANSFER_PAL_OETF :: Word8
pattern $bKHR_DF_TRANSFER_PAL_OETF :: Word8
$mKHR_DF_TRANSFER_PAL_OETF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_PAL_OETF = 13
pattern KHR_DF_TRANSFER_PAL625_EOTF :: Word8
pattern $bKHR_DF_TRANSFER_PAL625_EOTF :: Word8
$mKHR_DF_TRANSFER_PAL625_EOTF :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_PAL625_EOTF = 14
pattern KHR_DF_TRANSFER_ST240 :: Word8
pattern $bKHR_DF_TRANSFER_ST240 :: Word8
$mKHR_DF_TRANSFER_ST240 :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_ST240 = 15
pattern KHR_DF_TRANSFER_ACESCC :: Word8
pattern $bKHR_DF_TRANSFER_ACESCC :: Word8
$mKHR_DF_TRANSFER_ACESCC :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_ACESCC = 16
pattern KHR_DF_TRANSFER_ACESCCT :: Word8
pattern $bKHR_DF_TRANSFER_ACESCCT :: Word8
$mKHR_DF_TRANSFER_ACESCCT :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_ACESCCT = 17
pattern KHR_DF_TRANSFER_ADOBERGB :: Word8
pattern $bKHR_DF_TRANSFER_ADOBERGB :: Word8
$mKHR_DF_TRANSFER_ADOBERGB :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_TRANSFER_ADOBERGB = 18
pattern KHR_DF_FLAG_ALPHA_STRAIGHT :: Word8
pattern $bKHR_DF_FLAG_ALPHA_STRAIGHT :: Word8
$mKHR_DF_FLAG_ALPHA_STRAIGHT :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_FLAG_ALPHA_STRAIGHT = 0
pattern KHR_DF_FLAG_ALPHA_PREMULTIPLIED :: Word8
pattern $bKHR_DF_FLAG_ALPHA_PREMULTIPLIED :: Word8
$mKHR_DF_FLAG_ALPHA_PREMULTIPLIED :: forall {r}. Word8 -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_FLAG_ALPHA_PREMULTIPLIED = 1
pattern KHR_DF_SAMPLE_DATATYPE_FLOAT :: (Eq a, Num a) => a
pattern $bKHR_DF_SAMPLE_DATATYPE_FLOAT :: forall a. (Eq a, Num a) => a
$mKHR_DF_SAMPLE_DATATYPE_FLOAT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_SAMPLE_DATATYPE_FLOAT = 0x80
pattern KHR_DF_SAMPLE_DATATYPE_SIGNED :: (Eq a, Num a) => a
pattern $bKHR_DF_SAMPLE_DATATYPE_SIGNED :: forall a. (Eq a, Num a) => a
$mKHR_DF_SAMPLE_DATATYPE_SIGNED :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_SAMPLE_DATATYPE_SIGNED = 0x40
pattern KHR_DF_SAMPLE_DATATYPE_EXPONENT :: (Eq a, Num a) => a
pattern $bKHR_DF_SAMPLE_DATATYPE_EXPONENT :: forall a. (Eq a, Num a) => a
$mKHR_DF_SAMPLE_DATATYPE_EXPONENT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_SAMPLE_DATATYPE_EXPONENT = 0x20
pattern KHR_DF_SAMPLE_DATATYPE_LINEAR :: (Eq a, Num a) => a
pattern $bKHR_DF_SAMPLE_DATATYPE_LINEAR :: forall a. (Eq a, Num a) => a
$mKHR_DF_SAMPLE_DATATYPE_LINEAR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
KHR_DF_SAMPLE_DATATYPE_LINEAR = 0x10