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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Viewport
       (VkViewport, VkViewportSwizzleNV, VkViewportWScalingNV) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV (VkViewportCoordinateSwizzleNV)

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

data VkViewport' -- ' closing tick for hsc2hs

instance VulkanMarshal VkViewport where
    type StructRep VkViewport =
         'StructMeta "VkViewport" VkViewport  -- ' closing tick for hsc2hs
                                             (24)
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           4
{-# LINE 33 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           '[('FieldMeta "x" (
                              Float
{-# LINE 35 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                              ) 'False  -- ' closing tick for hsc2hs
                                       (0)
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "y" ( -- ' closing tick for hsc2hs
                              Float
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                              ) 'False  -- ' closing tick for hsc2hs
                                       (4)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "width" ( -- ' closing tick for hsc2hs
                                  Float
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                  ) 'False  -- ' closing tick for hsc2hs
                                           (8)
{-# LINE 51 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "height" ( -- ' closing tick for hsc2hs
                                   Float
{-# LINE 56 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                   ) 'False  -- ' closing tick for hsc2hs
                                            (12)
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "minDepth" ( -- ' closing tick for hsc2hs
                                     Float
{-# LINE 63 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                     ) 'False  -- ' closing tick for hsc2hs
                                              (16)
{-# LINE 65 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxDepth" ( -- ' closing tick for hsc2hs
                                     Float
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                     ) 'False  -- ' closing tick for hsc2hs
                                              (20)
{-# LINE 72 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.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 VkViewportSwizzleNV {
--   >     VkViewportCoordinateSwizzleNV          x;
--   >     VkViewportCoordinateSwizzleNV          y;
--   >     VkViewportCoordinateSwizzleNV          z;
--   >     VkViewportCoordinateSwizzleNV          w;
--   > } VkViewportSwizzleNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportSwizzleNV VkViewportSwizzleNV registry at www.khronos.org>
type VkViewportSwizzleNV = VkStruct VkViewportSwizzleNV' -- ' closing tick for hsc2hs

data VkViewportSwizzleNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkViewportSwizzleNV where
    type StructRep VkViewportSwizzleNV =
         'StructMeta "VkViewportSwizzleNV" VkViewportSwizzleNV  -- ' closing tick for hsc2hs
                                                               (16)
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           4
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           '[('FieldMeta "x" VkViewportCoordinateSwizzleNV 'False  -- ' closing tick for hsc2hs
                                                                  (0)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "y" VkViewportCoordinateSwizzleNV 'False
                                                                  (4)
{-# LINE 103 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "z" VkViewportCoordinateSwizzleNV 'False
                                                                  (8)
{-# LINE 108 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "w" VkViewportCoordinateSwizzleNV 'False
                                                                  (12)
{-# LINE 113 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.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 VkViewportWScalingNV {
--   >     float          xcoeff;
--   >     float          ycoeff;
--   > } VkViewportWScalingNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportWScalingNV VkViewportWScalingNV registry at www.khronos.org>
type VkViewportWScalingNV = VkStruct VkViewportWScalingNV' -- ' closing tick for hsc2hs

data VkViewportWScalingNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkViewportWScalingNV where
    type StructRep VkViewportWScalingNV =
         'StructMeta "VkViewportWScalingNV" VkViewportWScalingNV  -- ' closing tick for hsc2hs
                                                                 (8)
{-# LINE 134 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           4
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
           '[('FieldMeta "xcoeff" (
                                   Float
{-# LINE 137 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                   ) 'False  -- ' closing tick for hsc2hs
                                            (0)
{-# LINE 139 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ycoeff" ( -- ' closing tick for hsc2hs
                                   Float
{-# LINE 144 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc" #-}
                                   ) 'False  -- ' closing tick for hsc2hs
                                            (4)
{-# LINE 146 "src-gen/Graphics/Vulkan/Types/Struct/Viewport.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