{-# OPTIONS_HADDOCK not-home#-}
{-# LANGUAGE DataKinds       #-}
{-# LANGUAGE MagicHash       #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Strict          #-}
{-# LANGUAGE ViewPatterns    #-}
module Graphics.Vulkan.Ext.VK_EXT_blend_operation_advanced
       (-- * Vulkan extension: @VK_EXT_blend_operation_advanced@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Jeff Bolz @jeffbolznv@
        --
        -- author: @NV@
        --
        -- type: @device@
        --
        -- Extension number: @149@
        module Graphics.Vulkan.Marshal, VkBlendFactor(..), VkBlendOp(..),
        VkBlendOverlapEXT(..), AHardwareBuffer(), ANativeWindow(),
        CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR,
        VkColorComponentBitmask(..), VkColorSpaceKHR(..),
        VkColorComponentFlagBits(), VkColorComponentFlags(),
        VkAndroidSurfaceCreateFlagsKHR(..), VkBufferViewCreateFlags(..),
        VkBuildAccelerationStructureFlagsNV(..),
        VkCommandPoolTrimFlags(..), VkCommandPoolTrimFlagsKHR(..),
        VkDebugUtilsMessengerCallbackDataFlagsEXT(..),
        VkDebugUtilsMessengerCreateFlagsEXT(..),
        VkDescriptorBindingFlagsEXT(..), VkDescriptorPoolResetFlags(..),
        VkDescriptorUpdateTemplateCreateFlags(..),
        VkDescriptorUpdateTemplateCreateFlagsKHR(..),
        VkDeviceCreateFlags(..), VkDirectFBSurfaceCreateFlagsEXT(..),
        VkDisplayModeCreateFlagsKHR(..),
        VkDisplaySurfaceCreateFlagsKHR(..), VkEventCreateFlags(..),
        VkExternalFenceFeatureFlagsKHR(..),
        VkExternalFenceHandleTypeFlagsKHR(..),
        VkExternalMemoryFeatureFlagsKHR(..),
        VkExternalMemoryHandleTypeFlagsKHR(..),
        VkExternalSemaphoreFeatureFlagsKHR(..),
        VkExternalSemaphoreHandleTypeFlagsKHR(..),
        VkFenceImportFlagsKHR(..), VkGeometryFlagsNV(..),
        VkGeometryInstanceFlagsNV(..), VkHeadlessSurfaceCreateFlagsEXT(..),
        VkIOSSurfaceCreateFlagsMVK(..),
        VkImagePipeSurfaceCreateFlagsFUCHSIA(..),
        VkInstanceCreateFlags(..), VkMacOSSurfaceCreateFlagsMVK(..),
        VkMemoryAllocateFlagsKHR(..), VkMemoryMapFlags(..),
        VkMetalSurfaceCreateFlagsEXT(..), VkPeerMemoryFeatureFlagsKHR(..),
        VkPipelineColorBlendStateCreateFlags(..),
        VkPipelineCoverageModulationStateCreateFlagsNV(..),
        VkPipelineCoverageReductionStateCreateFlagsNV(..),
        VkPipelineCoverageToColorStateCreateFlagsNV(..),
        VkPipelineDepthStencilStateCreateFlags(..),
        VkPipelineDiscardRectangleStateCreateFlagsEXT(..),
        VkPipelineDynamicStateCreateFlags(..),
        VkPipelineInputAssemblyStateCreateFlags(..),
        VkPipelineLayoutCreateFlags(..),
        VkPipelineMultisampleStateCreateFlags(..),
        VkPipelineRasterizationConservativeStateCreateFlagsEXT(..),
        VkPipelineRasterizationDepthClipStateCreateFlagsEXT(..),
        VkPipelineRasterizationStateCreateFlags(..),
        VkPipelineRasterizationStateStreamCreateFlagsEXT(..),
        VkPipelineTessellationStateCreateFlags(..),
        VkPipelineVertexInputStateCreateFlags(..),
        VkPipelineViewportStateCreateFlags(..),
        VkPipelineViewportSwizzleStateCreateFlagsNV(..),
        VkQueryPoolCreateFlags(..), VkResolveModeFlagsKHR(..),
        VkSemaphoreCreateFlags(..), VkSemaphoreImportFlagsKHR(..),
        VkSemaphoreWaitFlagsKHR(..),
        VkStreamDescriptorSurfaceCreateFlagsGGP(..),
        VkValidationCacheCreateFlagsEXT(..), VkViSurfaceCreateFlagsNN(..),
        VkWaylandSurfaceCreateFlagsKHR(..),
        VkWin32SurfaceCreateFlagsKHR(..), VkXcbSurfaceCreateFlagsKHR(..),
        VkXlibSurfaceCreateFlagsKHR(..), VkDeviceCreateInfo,
        VkDeviceDiagnosticsConfigBitmaskNV(..), VkDeviceEventTypeEXT(..),
        VkDeviceGroupPresentModeBitmaskKHR(..), VkDeviceCreateFlagBits(..),
        VkDeviceDiagnosticsConfigFlagBitsNV(),
        VkDeviceDiagnosticsConfigFlagsNV(),
        VkDeviceGroupPresentModeFlagBitsKHR(),
        VkDeviceGroupPresentModeFlagsKHR(), VkDeviceQueueCreateBitmask(..),
        VkDeviceQueueCreateFlagBits(), VkDeviceQueueCreateFlags(),
        VkDeviceQueueCreateInfo, VkLogicOp(..),
        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures2,
        VkPhysicalDeviceLimits, VkPhysicalDeviceProperties,
        VkPhysicalDeviceProperties2, VkPhysicalDeviceSparseProperties,
        VkPhysicalDeviceType(..),
        VkPipelineColorBlendAdvancedStateCreateInfoEXT,
        VkPipelineColorBlendAttachmentState,
        VkPipelineColorBlendStateCreateInfo, VkSampleCountBitmask(..),
        VkSampleCountFlagBits(), VkSampleCountFlags(), VkStructureType(..),
        -- > #include "vk_platform.h"
        VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION,
        pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION,
        VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME,
        pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
        pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
        pattern VK_BLEND_OP_ZERO_EXT, pattern VK_BLEND_OP_SRC_EXT,
        pattern VK_BLEND_OP_DST_EXT, pattern VK_BLEND_OP_SRC_OVER_EXT,
        pattern VK_BLEND_OP_DST_OVER_EXT, pattern VK_BLEND_OP_SRC_IN_EXT,
        pattern VK_BLEND_OP_DST_IN_EXT, pattern VK_BLEND_OP_SRC_OUT_EXT,
        pattern VK_BLEND_OP_DST_OUT_EXT, pattern VK_BLEND_OP_SRC_ATOP_EXT,
        pattern VK_BLEND_OP_DST_ATOP_EXT, pattern VK_BLEND_OP_XOR_EXT,
        pattern VK_BLEND_OP_MULTIPLY_EXT, pattern VK_BLEND_OP_SCREEN_EXT,
        pattern VK_BLEND_OP_OVERLAY_EXT, pattern VK_BLEND_OP_DARKEN_EXT,
        pattern VK_BLEND_OP_LIGHTEN_EXT,
        pattern VK_BLEND_OP_COLORDODGE_EXT,
        pattern VK_BLEND_OP_COLORBURN_EXT,
        pattern VK_BLEND_OP_HARDLIGHT_EXT,
        pattern VK_BLEND_OP_SOFTLIGHT_EXT,
        pattern VK_BLEND_OP_DIFFERENCE_EXT,
        pattern VK_BLEND_OP_EXCLUSION_EXT, pattern VK_BLEND_OP_INVERT_EXT,
        pattern VK_BLEND_OP_INVERT_RGB_EXT,
        pattern VK_BLEND_OP_LINEARDODGE_EXT,
        pattern VK_BLEND_OP_LINEARBURN_EXT,
        pattern VK_BLEND_OP_VIVIDLIGHT_EXT,
        pattern VK_BLEND_OP_LINEARLIGHT_EXT,
        pattern VK_BLEND_OP_PINLIGHT_EXT, pattern VK_BLEND_OP_HARDMIX_EXT,
        pattern VK_BLEND_OP_HSL_HUE_EXT,
        pattern VK_BLEND_OP_HSL_SATURATION_EXT,
        pattern VK_BLEND_OP_HSL_COLOR_EXT,
        pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT,
        pattern VK_BLEND_OP_PLUS_EXT, pattern VK_BLEND_OP_PLUS_CLAMPED_EXT,
        pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
        pattern VK_BLEND_OP_PLUS_DARKER_EXT, pattern VK_BLEND_OP_MINUS_EXT,
        pattern VK_BLEND_OP_MINUS_CLAMPED_EXT,
        pattern VK_BLEND_OP_CONTRAST_EXT,
        pattern VK_BLEND_OP_INVERT_OVG_EXT, pattern VK_BLEND_OP_RED_EXT,
        pattern VK_BLEND_OP_GREEN_EXT, pattern VK_BLEND_OP_BLUE_EXT,
        pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT)
       where
import GHC.Ptr                                             (Ptr (..))
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Types.BaseTypes
import Graphics.Vulkan.Types.Bitmasks
import Graphics.Vulkan.Types.Enum.AccessFlags              (VkAccessBitmask (..))
import Graphics.Vulkan.Types.Enum.Blend
import Graphics.Vulkan.Types.Enum.Color
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.LogicOp
import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
import Graphics.Vulkan.Types.Enum.SampleCountFlags
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo, VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.PhysicalDevice         (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
                                                            VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
                                                            VkPhysicalDeviceFeatures2,
                                                            VkPhysicalDeviceLimits,
                                                            VkPhysicalDeviceProperties,
                                                            VkPhysicalDeviceProperties2,
                                                            VkPhysicalDeviceSparseProperties)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Pipeline               (VkPipelineColorBlendAdvancedStateCreateInfoEXT,
                                                            VkPipelineColorBlendAttachmentState,
                                                            VkPipelineColorBlendStateCreateInfo)

pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION ::
        (Num a, Eq a) => a

pattern $bVK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2

type VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2

pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: CString

pattern $bVK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: CString
$mVK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME <-
        (is_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME -> True)
  where
    VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
      = CString
_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME

{-# INLINE _VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME #-}

_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: CString
_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: CString
_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_EXT_blend_operation_advanced\NUL"#

{-# INLINE is_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME #-}

is_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME ::
                                                  CString -> Bool
is_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: CString -> Bool
is_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
      CString -> CString -> Ordering
cmpCStrings CString
_VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME

type VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME =
     "VK_EXT_blend_operation_advanced"

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
        = VkStructureType 1000148000

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
        = VkStructureType 1000148001

pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
        = VkStructureType 1000148002

pattern VK_BLEND_OP_ZERO_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_ZERO_EXT :: VkBlendOp
$mVK_BLEND_OP_ZERO_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_ZERO_EXT = VkBlendOp 1000148000

pattern VK_BLEND_OP_SRC_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SRC_EXT :: VkBlendOp
$mVK_BLEND_OP_SRC_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SRC_EXT = VkBlendOp 1000148001

pattern VK_BLEND_OP_DST_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DST_EXT :: VkBlendOp
$mVK_BLEND_OP_DST_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DST_EXT = VkBlendOp 1000148002

pattern VK_BLEND_OP_SRC_OVER_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SRC_OVER_EXT :: VkBlendOp
$mVK_BLEND_OP_SRC_OVER_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SRC_OVER_EXT = VkBlendOp 1000148003

pattern VK_BLEND_OP_DST_OVER_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DST_OVER_EXT :: VkBlendOp
$mVK_BLEND_OP_DST_OVER_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DST_OVER_EXT = VkBlendOp 1000148004

pattern VK_BLEND_OP_SRC_IN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SRC_IN_EXT :: VkBlendOp
$mVK_BLEND_OP_SRC_IN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SRC_IN_EXT = VkBlendOp 1000148005

pattern VK_BLEND_OP_DST_IN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DST_IN_EXT :: VkBlendOp
$mVK_BLEND_OP_DST_IN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DST_IN_EXT = VkBlendOp 1000148006

pattern VK_BLEND_OP_SRC_OUT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SRC_OUT_EXT :: VkBlendOp
$mVK_BLEND_OP_SRC_OUT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SRC_OUT_EXT = VkBlendOp 1000148007

pattern VK_BLEND_OP_DST_OUT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DST_OUT_EXT :: VkBlendOp
$mVK_BLEND_OP_DST_OUT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DST_OUT_EXT = VkBlendOp 1000148008

pattern VK_BLEND_OP_SRC_ATOP_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SRC_ATOP_EXT :: VkBlendOp
$mVK_BLEND_OP_SRC_ATOP_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SRC_ATOP_EXT = VkBlendOp 1000148009

pattern VK_BLEND_OP_DST_ATOP_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DST_ATOP_EXT :: VkBlendOp
$mVK_BLEND_OP_DST_ATOP_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DST_ATOP_EXT = VkBlendOp 1000148010

pattern VK_BLEND_OP_XOR_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_XOR_EXT :: VkBlendOp
$mVK_BLEND_OP_XOR_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_XOR_EXT = VkBlendOp 1000148011

pattern VK_BLEND_OP_MULTIPLY_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_MULTIPLY_EXT :: VkBlendOp
$mVK_BLEND_OP_MULTIPLY_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_MULTIPLY_EXT = VkBlendOp 1000148012

pattern VK_BLEND_OP_SCREEN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SCREEN_EXT :: VkBlendOp
$mVK_BLEND_OP_SCREEN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SCREEN_EXT = VkBlendOp 1000148013

pattern VK_BLEND_OP_OVERLAY_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_OVERLAY_EXT :: VkBlendOp
$mVK_BLEND_OP_OVERLAY_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_OVERLAY_EXT = VkBlendOp 1000148014

pattern VK_BLEND_OP_DARKEN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DARKEN_EXT :: VkBlendOp
$mVK_BLEND_OP_DARKEN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DARKEN_EXT = VkBlendOp 1000148015

pattern VK_BLEND_OP_LIGHTEN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_LIGHTEN_EXT :: VkBlendOp
$mVK_BLEND_OP_LIGHTEN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_LIGHTEN_EXT = VkBlendOp 1000148016

pattern VK_BLEND_OP_COLORDODGE_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_COLORDODGE_EXT :: VkBlendOp
$mVK_BLEND_OP_COLORDODGE_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_COLORDODGE_EXT = VkBlendOp 1000148017

pattern VK_BLEND_OP_COLORBURN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_COLORBURN_EXT :: VkBlendOp
$mVK_BLEND_OP_COLORBURN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_COLORBURN_EXT = VkBlendOp 1000148018

pattern VK_BLEND_OP_HARDLIGHT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HARDLIGHT_EXT :: VkBlendOp
$mVK_BLEND_OP_HARDLIGHT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HARDLIGHT_EXT = VkBlendOp 1000148019

pattern VK_BLEND_OP_SOFTLIGHT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_SOFTLIGHT_EXT :: VkBlendOp
$mVK_BLEND_OP_SOFTLIGHT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_SOFTLIGHT_EXT = VkBlendOp 1000148020

pattern VK_BLEND_OP_DIFFERENCE_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_DIFFERENCE_EXT :: VkBlendOp
$mVK_BLEND_OP_DIFFERENCE_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_DIFFERENCE_EXT = VkBlendOp 1000148021

pattern VK_BLEND_OP_EXCLUSION_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_EXCLUSION_EXT :: VkBlendOp
$mVK_BLEND_OP_EXCLUSION_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_EXCLUSION_EXT = VkBlendOp 1000148022

pattern VK_BLEND_OP_INVERT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_INVERT_EXT :: VkBlendOp
$mVK_BLEND_OP_INVERT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_INVERT_EXT = VkBlendOp 1000148023

pattern VK_BLEND_OP_INVERT_RGB_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_INVERT_RGB_EXT :: VkBlendOp
$mVK_BLEND_OP_INVERT_RGB_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_INVERT_RGB_EXT = VkBlendOp 1000148024

pattern VK_BLEND_OP_LINEARDODGE_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_LINEARDODGE_EXT :: VkBlendOp
$mVK_BLEND_OP_LINEARDODGE_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_LINEARDODGE_EXT = VkBlendOp 1000148025

pattern VK_BLEND_OP_LINEARBURN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_LINEARBURN_EXT :: VkBlendOp
$mVK_BLEND_OP_LINEARBURN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_LINEARBURN_EXT = VkBlendOp 1000148026

pattern VK_BLEND_OP_VIVIDLIGHT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_VIVIDLIGHT_EXT :: VkBlendOp
$mVK_BLEND_OP_VIVIDLIGHT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_VIVIDLIGHT_EXT = VkBlendOp 1000148027

pattern VK_BLEND_OP_LINEARLIGHT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_LINEARLIGHT_EXT :: VkBlendOp
$mVK_BLEND_OP_LINEARLIGHT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_LINEARLIGHT_EXT = VkBlendOp 1000148028

pattern VK_BLEND_OP_PINLIGHT_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_PINLIGHT_EXT :: VkBlendOp
$mVK_BLEND_OP_PINLIGHT_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_PINLIGHT_EXT = VkBlendOp 1000148029

pattern VK_BLEND_OP_HARDMIX_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HARDMIX_EXT :: VkBlendOp
$mVK_BLEND_OP_HARDMIX_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HARDMIX_EXT = VkBlendOp 1000148030

pattern VK_BLEND_OP_HSL_HUE_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HSL_HUE_EXT :: VkBlendOp
$mVK_BLEND_OP_HSL_HUE_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HSL_HUE_EXT = VkBlendOp 1000148031

pattern VK_BLEND_OP_HSL_SATURATION_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HSL_SATURATION_EXT :: VkBlendOp
$mVK_BLEND_OP_HSL_SATURATION_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HSL_SATURATION_EXT = VkBlendOp 1000148032

pattern VK_BLEND_OP_HSL_COLOR_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HSL_COLOR_EXT :: VkBlendOp
$mVK_BLEND_OP_HSL_COLOR_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HSL_COLOR_EXT = VkBlendOp 1000148033

pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_HSL_LUMINOSITY_EXT :: VkBlendOp
$mVK_BLEND_OP_HSL_LUMINOSITY_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_HSL_LUMINOSITY_EXT = VkBlendOp 1000148034

pattern VK_BLEND_OP_PLUS_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_PLUS_EXT :: VkBlendOp
$mVK_BLEND_OP_PLUS_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_PLUS_EXT = VkBlendOp 1000148035

pattern VK_BLEND_OP_PLUS_CLAMPED_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_PLUS_CLAMPED_EXT :: VkBlendOp
$mVK_BLEND_OP_PLUS_CLAMPED_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_PLUS_CLAMPED_EXT = VkBlendOp 1000148036

pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: VkBlendOp
$mVK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = VkBlendOp 1000148037

pattern VK_BLEND_OP_PLUS_DARKER_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_PLUS_DARKER_EXT :: VkBlendOp
$mVK_BLEND_OP_PLUS_DARKER_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_PLUS_DARKER_EXT = VkBlendOp 1000148038

pattern VK_BLEND_OP_MINUS_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_MINUS_EXT :: VkBlendOp
$mVK_BLEND_OP_MINUS_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_MINUS_EXT = VkBlendOp 1000148039

pattern VK_BLEND_OP_MINUS_CLAMPED_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_MINUS_CLAMPED_EXT :: VkBlendOp
$mVK_BLEND_OP_MINUS_CLAMPED_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_MINUS_CLAMPED_EXT = VkBlendOp 1000148040

pattern VK_BLEND_OP_CONTRAST_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_CONTRAST_EXT :: VkBlendOp
$mVK_BLEND_OP_CONTRAST_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_CONTRAST_EXT = VkBlendOp 1000148041

pattern VK_BLEND_OP_INVERT_OVG_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_INVERT_OVG_EXT :: VkBlendOp
$mVK_BLEND_OP_INVERT_OVG_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_INVERT_OVG_EXT = VkBlendOp 1000148042

pattern VK_BLEND_OP_RED_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_RED_EXT :: VkBlendOp
$mVK_BLEND_OP_RED_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_RED_EXT = VkBlendOp 1000148043

pattern VK_BLEND_OP_GREEN_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_GREEN_EXT :: VkBlendOp
$mVK_BLEND_OP_GREEN_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_GREEN_EXT = VkBlendOp 1000148044

pattern VK_BLEND_OP_BLUE_EXT :: VkBlendOp

pattern $bVK_BLEND_OP_BLUE_EXT :: VkBlendOp
$mVK_BLEND_OP_BLUE_EXT :: forall {r}. VkBlendOp -> (Void# -> r) -> (Void# -> r) -> r
VK_BLEND_OP_BLUE_EXT = VkBlendOp 1000148045

-- | bitpos = @19@
pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT ::
        VkAccessBitmask a

pattern $bVK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT =
        VkAccessBitmask 524288