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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.StencilOpState
       (VkStencilOpState) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.CompareOp (VkCompareOp)
import Graphics.Vulkan.Types.Enum.Stencil   (VkStencilOp)

-- | > typedef struct VkStencilOpState {
--   >     VkStencilOp            failOp;
--   >     VkStencilOp            passOp;
--   >     VkStencilOp            depthFailOp;
--   >     VkCompareOp            compareOp;
--   >     uint32_t               compareMask;
--   >     uint32_t               writeMask;
--   >     uint32_t               reference;
--   > } VkStencilOpState;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkStencilOpState VkStencilOpState registry at www.khronos.org>
type VkStencilOpState = VkStruct VkStencilOpState' -- ' closing tick for hsc2hs

data VkStencilOpState' -- ' closing tick for hsc2hs

instance VulkanMarshal VkStencilOpState where
    type StructRep VkStencilOpState =
         'StructMeta "VkStencilOpState" VkStencilOpState  -- ' closing tick for hsc2hs
                                                         (28)
{-# LINE 34 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
           4
{-# LINE 35 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
           '[('FieldMeta "failOp" VkStencilOp 'False  -- ' closing tick for hsc2hs
                                                     (0)
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "passOp" VkStencilOp 'False
                                                     (4)
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "depthFailOp" VkStencilOp 'False
                                                          (8)
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "compareOp" VkCompareOp 'False
                                                        (12)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "compareMask" Word32 'False
                                                     (16)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "writeMask" Word32 'False
                                                   (20)
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "reference" Word32 'False
                                                   (24)
{-# LINE 67 "src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.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