{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Gpu.Vulkan.Component.Middle.Internal where

import Data.Default
import Gpu.Vulkan.Component.Enum

import qualified Gpu.Vulkan.Component.Core as C

data Mapping = Mapping {
	Mapping -> Swizzle
mappingR :: Swizzle, Mapping -> Swizzle
mappingG :: Swizzle,
	Mapping -> Swizzle
mappingB :: Swizzle, Mapping -> Swizzle
mappingA :: Swizzle }
	deriving Int -> Mapping -> ShowS
[Mapping] -> ShowS
Mapping -> String
(Int -> Mapping -> ShowS)
-> (Mapping -> String) -> ([Mapping] -> ShowS) -> Show Mapping
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Mapping -> ShowS
showsPrec :: Int -> Mapping -> ShowS
$cshow :: Mapping -> String
show :: Mapping -> String
$cshowList :: [Mapping] -> ShowS
showList :: [Mapping] -> ShowS
Show

instance Default Mapping where
	def :: Mapping
def = Mapping {
		mappingR :: Swizzle
mappingR = Swizzle
forall a. Default a => a
def, mappingG :: Swizzle
mappingG = Swizzle
forall a. Default a => a
def, mappingB :: Swizzle
mappingB = Swizzle
forall a. Default a => a
def, mappingA :: Swizzle
mappingA = Swizzle
forall a. Default a => a
def }

mappingToCore :: Mapping -> C.Mapping
mappingToCore :: Mapping -> Mapping
mappingToCore Mapping {
	mappingR :: Mapping -> Swizzle
mappingR = Swizzle Word32
r, mappingG :: Mapping -> Swizzle
mappingG = Swizzle Word32
g,
	mappingB :: Mapping -> Swizzle
mappingB = Swizzle Word32
b, mappingA :: Mapping -> Swizzle
mappingA = Swizzle Word32
a } = C.Mapping {
		mappingR :: Word32
C.mappingR = Word32
r, mappingG :: Word32
C.mappingG = Word32
g, mappingB :: Word32
C.mappingB = Word32
b, mappingA :: Word32
C.mappingA = Word32
a }