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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.SubresourceLayout
       (VkSubresourceLayout) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)

-- | > typedef struct VkSubresourceLayout {
--   >     VkDeviceSize           offset;
--   >     VkDeviceSize           size;
--   >     VkDeviceSize           rowPitch;
--   >     VkDeviceSize           arrayPitch;
--   >     VkDeviceSize           depthPitch;
--   > } VkSubresourceLayout;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubresourceLayout VkSubresourceLayout registry at www.khronos.org>
type VkSubresourceLayout = VkStruct VkSubresourceLayout' -- ' closing tick for hsc2hs

data VkSubresourceLayout' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSubresourceLayout where
    type StructRep VkSubresourceLayout =
         'StructMeta "VkSubresourceLayout" VkSubresourceLayout  -- ' closing tick for hsc2hs
                                                               (40)
{-# LINE 31 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
           8
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
           '[('FieldMeta "offset" VkDeviceSize 'False  -- ' closing tick for hsc2hs
                                                      (0)
{-# LINE 34 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False
                                                    (8)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "rowPitch" VkDeviceSize 'False
                                                        (16)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "arrayPitch" VkDeviceSize 'False
                                                          (24)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "depthPitch" VkDeviceSize 'False
                                                          (32)
{-# LINE 54 "src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.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