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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.SampleLocation
       (VkSampleLocationEXT, VkSampleLocationsInfoEXT) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
import Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
import Graphics.Vulkan.Types.Struct.Extent         (VkExtent2D)
import Graphics.Vulkan.Types.Struct.Image          (VkImageMemoryBarrier)

-- | > typedef struct VkSampleLocationEXT {
--   >     float                            x;
--   >     float                            y;
--   > } VkSampleLocationEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationEXT VkSampleLocationEXT registry at www.khronos.org>
type VkSampleLocationEXT = VkStruct VkSampleLocationEXT' -- ' closing tick for hsc2hs

data VkSampleLocationEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSampleLocationEXT where
    type StructRep VkSampleLocationEXT =
         'StructMeta "VkSampleLocationEXT" VkSampleLocationEXT  -- ' closing tick for hsc2hs
                                                               (8)
{-# LINE 31 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
           4
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
           '[('FieldMeta "x" (
                              Float
{-# LINE 34 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                              ) 'False  -- ' closing tick for hsc2hs
                                       (0)
{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "y" ( -- ' closing tick for hsc2hs
                              Float
{-# LINE 41 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                              ) 'False  -- ' closing tick for hsc2hs
                                       (4)
{-# LINE 43 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.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 VkSampleLocationsInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSampleCountFlagBits            sampleLocationsPerPixel;
--   >     VkExtent2D                       sampleLocationGridSize;
--   >     uint32_t                         sampleLocationsCount;
--   >     const VkSampleLocationEXT* pSampleLocations;
--   > } VkSampleLocationsInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationsInfoEXT VkSampleLocationsInfoEXT registry at www.khronos.org>
type VkSampleLocationsInfoEXT = VkStruct VkSampleLocationsInfoEXT' -- ' closing tick for hsc2hs

data VkSampleLocationsInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSampleLocationsInfoEXT where
    type StructRep VkSampleLocationsInfoEXT =
         'StructMeta "VkSampleLocationsInfoEXT" VkSampleLocationsInfoEXT -- ' closing tick for hsc2hs
           (40)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
           8
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 76 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sampleLocationsPerPixel" VkSampleCountFlagBits 'False
                (16)
{-# LINE 81 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sampleLocationGridSize" VkExtent2D 'False
                                                                    (20)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sampleLocationsCount" Word32 'False
                                                              (28)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSampleLocations" (Ptr VkSampleLocationEXT) 'False
                (32)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageMemoryBarrier] -- ' closing tick for hsc2hs