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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.DrmFormatModifierProperties
       (VkDrmFormatModifierPropertiesEXT,
        VkDrmFormatModifierPropertiesListEXT)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Format             (VkFormatFeatureFlags)
import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
import Graphics.Vulkan.Types.Struct.FormatProperties (VkFormatProperties2)

-- | > typedef struct VkDrmFormatModifierPropertiesEXT {
--   >     uint64_t drmFormatModifier;
--   >     uint32_t drmFormatModifierPlaneCount;
--   >     VkFormatFeatureFlags drmFormatModifierTilingFeatures;
--   > } VkDrmFormatModifierPropertiesEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDrmFormatModifierPropertiesEXT VkDrmFormatModifierPropertiesEXT registry at www.khronos.org>
type VkDrmFormatModifierPropertiesEXT =
     VkStruct VkDrmFormatModifierPropertiesEXT' -- ' closing tick for hsc2hs

data VkDrmFormatModifierPropertiesEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDrmFormatModifierPropertiesEXT where
    type StructRep VkDrmFormatModifierPropertiesEXT =
         'StructMeta "VkDrmFormatModifierPropertiesEXT" -- ' closing tick for hsc2hs
           VkDrmFormatModifierPropertiesEXT
           (16)
{-# LINE 35 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
           8
{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
           '[('FieldMeta "drmFormatModifier" Word64 'False  -- ' closing tick for hsc2hs
                                                           (0)
{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifierPlaneCount" Word32 'False 
                                                                     (8)
{-# LINE 43 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifierTilingFeatures" VkFormatFeatureFlags -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (12)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

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

data VkDrmFormatModifierPropertiesListEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDrmFormatModifierPropertiesListEXT where
    type StructRep VkDrmFormatModifierPropertiesListEXT =
         'StructMeta "VkDrmFormatModifierPropertiesListEXT" -- ' closing tick for hsc2hs
           VkDrmFormatModifierPropertiesListEXT
           (32)
{-# LINE 74 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
           8
{-# LINE 75 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 77 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 82 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifierCount" Word32 'True 
                                                               (16)
{-# LINE 87 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDrmFormatModifierProperties" -- ' closing tick for hsc2hs
                (Ptr VkDrmFormatModifierPropertiesEXT)
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 94 "src-gen/Graphics/Vulkan/Types/Struct/DrmFormatModifierProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[VkFormatProperties2] -- ' closing tick for hsc2hs