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


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

-- | > typedef struct VkFormatProperties {
--   >     VkFormatFeatureFlags   linearTilingFeatures;
--   >     VkFormatFeatureFlags   optimalTilingFeatures;
--   >     VkFormatFeatureFlags   bufferFeatures;
--   > } VkFormatProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties VkFormatProperties registry at www.khronos.org>
type VkFormatProperties = VkStruct VkFormatProperties' -- ' closing tick for hsc2hs

data VkFormatProperties' -- ' closing tick for hsc2hs

instance VulkanMarshal VkFormatProperties where
    type StructRep VkFormatProperties =
         'StructMeta "VkFormatProperties" VkFormatProperties  -- ' closing tick for hsc2hs
                                                             (12)
{-# LINE 31 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
           4
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
           '[('FieldMeta "linearTilingFeatures" VkFormatFeatureFlags 'True -- ' closing tick for hsc2hs
                (0)
{-# LINE 34 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "optimalTilingFeatures" VkFormatFeatureFlags 'True
                (4)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bufferFeatures" VkFormatFeatureFlags 'True
                                                                     (8)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.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 VkFormatProperties2 {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     VkFormatProperties               formatProperties;
--   > } VkFormatProperties2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties2 VkFormatProperties2 registry at www.khronos.org>
type VkFormatProperties2 = VkStruct VkFormatProperties2' -- ' closing tick for hsc2hs

data VkFormatProperties2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkFormatProperties2 where
    type StructRep VkFormatProperties2 =
         'StructMeta "VkFormatProperties2" VkFormatProperties2  -- ' closing tick for hsc2hs
                                                               (32)
{-# LINE 66 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
           8
{-# LINE 67 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 74 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "formatProperties" VkFormatProperties 'False
                                                                      (16)
{-# LINE 79 "src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.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

-- | Alias for `VkFormatProperties2`
type VkFormatProperties2KHR = VkFormatProperties2