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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Validation
       (VkValidationCacheCreateInfoEXT, VkValidationFeaturesEXT,
        VkValidationFlagsEXT)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Bitmasks                  (VkValidationCacheCreateFlagsEXT)
import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
import Graphics.Vulkan.Types.Enum.Validation           (VkValidationCheckEXT, VkValidationFeatureDisableEXT,
                                                        VkValidationFeatureEnableEXT)
import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)

-- | > typedef struct VkValidationCacheCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkValidationCacheCreateFlagsEXT    flags;
--   >     size_t                 initialDataSize;
--   >     const void*            pInitialData;
--   > } VkValidationCacheCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationCacheCreateInfoEXT VkValidationCacheCreateInfoEXT registry at www.khronos.org>
type VkValidationCacheCreateInfoEXT =
     VkStruct VkValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs

data VkValidationCacheCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkValidationCacheCreateInfoEXT where
    type StructRep VkValidationCacheCreateInfoEXT =
         'StructMeta "VkValidationCacheCreateInfoEXT" -- ' closing tick for hsc2hs
           VkValidationCacheCreateInfoEXT
           (40)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           8
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkValidationCacheCreateFlagsEXT 'True 
                                                                       (16)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "initialDataSize" CSize 'True 
                                                       (24)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pInitialData" (Ptr Void) 'False 
                                                          (32)
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/Validation.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

-- | > typedef struct VkValidationFeaturesEXT {
--   >     VkStructureType  sType;
--   >     const void*                      pNext;
--   >     uint32_t                         enabledValidationFeatureCount;
--   >     const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
--   >     uint32_t                         disabledValidationFeatureCount;
--   >     const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
--   > } VkValidationFeaturesEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationFeaturesEXT VkValidationFeaturesEXT registry at www.khronos.org>
type VkValidationFeaturesEXT = VkStruct VkValidationFeaturesEXT' -- ' closing tick for hsc2hs

data VkValidationFeaturesEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkValidationFeaturesEXT where
    type StructRep VkValidationFeaturesEXT =
         'StructMeta "VkValidationFeaturesEXT" VkValidationFeaturesEXT -- ' closing tick for hsc2hs
           (48)
{-# LINE 87 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           8
{-# LINE 88 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 90 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enabledValidationFeatureCount" Word32 'True 
                                                                      (16)
{-# LINE 100 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pEnabledValidationFeatures" -- ' closing tick for hsc2hs
                (Ptr VkValidationFeatureEnableEXT)
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 107 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "disabledValidationFeatureCount" Word32 'True 
                                                                       (32)
{-# LINE 112 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDisabledValidationFeatures" -- ' closing tick for hsc2hs
                (Ptr VkValidationFeatureDisableEXT)
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkValidationFlagsEXT {
--   >     VkStructureType                  sType;
--   >     const void*                      pNext;
--   >     uint32_t                         disabledValidationCheckCount;
--   >     const VkValidationCheckEXT* pDisabledValidationChecks;
--   > } VkValidationFlagsEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationFlagsEXT VkValidationFlagsEXT registry at www.khronos.org>
type VkValidationFlagsEXT = VkStruct VkValidationFlagsEXT' -- ' closing tick for hsc2hs

data VkValidationFlagsEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkValidationFlagsEXT where
    type StructRep VkValidationFlagsEXT =
         'StructMeta "VkValidationFlagsEXT" VkValidationFlagsEXT  -- ' closing tick for hsc2hs
                                                                 (32)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           8
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 145 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "disabledValidationCheckCount" Word32 'False 
                                                                      (16)
{-# LINE 155 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDisabledValidationChecks" (Ptr VkValidationCheckEXT) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 161 "src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs