{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.ComponentMapping
       (VkComponentMapping) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Component (VkComponentSwizzle)

-- | > typedef struct VkComponentMapping {
--   >     VkComponentSwizzle r;
--   >     VkComponentSwizzle g;
--   >     VkComponentSwizzle b;
--   >     VkComponentSwizzle a;
--   > } VkComponentMapping;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkComponentMapping VkComponentMapping registry at www.khronos.org>
type VkComponentMapping = VkStruct VkComponentMapping' -- ' closing tick for hsc2hs

data VkComponentMapping' -- ' closing tick for hsc2hs

instance VulkanMarshal VkComponentMapping where
    type StructRep VkComponentMapping =
         'StructMeta "VkComponentMapping" VkComponentMapping  -- ' closing tick for hsc2hs
                                                             (16)
{-# LINE 30 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
           4
{-# LINE 31 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
           '[('FieldMeta "r" VkComponentSwizzle 'False  -- ' closing tick for hsc2hs
                                                       (0)
{-# LINE 33 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "g" VkComponentSwizzle 'False 
                                                       (4)
{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "b" VkComponentSwizzle 'False 
                                                       (8)
{-# LINE 43 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "a" VkComponentSwizzle 'False 
                                                       (12)
{-# LINE 48 "src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs