{-# language Strict #-} {-# language CPP #-} {-# language GeneralizedNewtypeDeriving #-} {-# language PatternSynonyms #-} {-# language OverloadedStrings #-} {-# language DuplicateRecordFields #-} module Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced ( VkBlendOverlapEXT(..) , pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT , pattern VK_BLEND_OVERLAP_DISJOINT_EXT , pattern VK_BLEND_OVERLAP_CONJOINT_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_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_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT , pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION , pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME , VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(..) , VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(..) , VkPipelineColorBlendAdvancedStateCreateInfoEXT(..) ) where import Data.Int ( Int32 ) import Data.String ( IsString ) import Data.Word ( Word32 ) import Foreign.Ptr ( Ptr , plusPtr ) import Foreign.Storable ( Storable , Storable(..) ) import GHC.Read ( choose , expectP ) import Text.ParserCombinators.ReadPrec ( (+++) , prec , step ) import Text.Read ( Read(..) , parens ) import Text.Read.Lex ( Lexeme(Ident) ) import Graphics.Vulkan.Core10.Core ( VkBool32(..) , VkStructureType(..) ) import Graphics.Vulkan.Core10.Pass ( VkAccessFlagBits(..) ) import Graphics.Vulkan.Core10.Pipeline ( VkBlendOp(..) ) -- ** VkBlendOverlapEXT -- | VkBlendOverlapEXT - Enumerant specifying the blend overlap parameter -- -- = Description -- -- - @VK_BLEND_OVERLAP_UNCORRELATED_EXT@ specifies that there is no -- correlation between the source and destination coverage. -- -- - @VK_BLEND_OVERLAP_CONJOINT_EXT@ specifies that the source and -- destination coverage are considered to have maximal overlap. -- -- - @VK_BLEND_OVERLAP_DISJOINT_EXT@ specifies that the source and -- destination coverage are considered to have minimal overlap. -- -- +-------------------------------------+--------------------------------------------------------------------------------------+ -- | Overlap Mode | Weighting Equations | -- +=====================================+======================================================================================+ -- | @VK_BLEND_OVERLAP_UNCORRELATED_EXT@ | \[ \begin{aligned} | -- | | p_0(A_s,A_d) & = A_sA_d \\ | -- | | p_1(A_s,A_d) & = A_s(1-A_d) \\ | -- | | p_2(A_s,A_d) & = A_d(1-A_s) \\ | -- | | \end{aligned}\] | -- +-------------------------------------+--------------------------------------------------------------------------------------+ -- | @VK_BLEND_OVERLAP_CONJOINT_EXT@ | \[ \begin{aligned} | -- | | p_0(A_s,A_d) & = min(A_s,A_d) \\ | -- | | p_1(A_s,A_d) & = max(A_s-A_d,0) \\ | -- | | p_2(A_s,A_d) & = max(A_d-A_s,0) \\ | -- | | \end{aligned}\] | -- +-------------------------------------+--------------------------------------------------------------------------------------+ -- | @VK_BLEND_OVERLAP_DISJOINT_EXT@ | \[ \begin{aligned} | -- | | p_0(A_s,A_d) & = max(A_s+A_d-1,0) \\ | -- | | p_1(A_s,A_d) & = min(A_s,1-A_d) \\ | -- | | p_2(A_s,A_d) & = min(A_d,1-A_s) \\ | -- | | \end{aligned}\] | -- +-------------------------------------+--------------------------------------------------------------------------------------+ -- -- Advanced Blend Overlap Modes -- -- = See Also -- -- 'VkPipelineColorBlendAdvancedStateCreateInfoEXT' newtype VkBlendOverlapEXT = VkBlendOverlapEXT Int32 deriving (Eq, Ord, Storable) instance Show VkBlendOverlapEXT where showsPrec _ VK_BLEND_OVERLAP_UNCORRELATED_EXT = showString "VK_BLEND_OVERLAP_UNCORRELATED_EXT" showsPrec _ VK_BLEND_OVERLAP_DISJOINT_EXT = showString "VK_BLEND_OVERLAP_DISJOINT_EXT" showsPrec _ VK_BLEND_OVERLAP_CONJOINT_EXT = showString "VK_BLEND_OVERLAP_CONJOINT_EXT" showsPrec p (VkBlendOverlapEXT x) = showParen (p >= 11) (showString "VkBlendOverlapEXT " . showsPrec 11 x) instance Read VkBlendOverlapEXT where readPrec = parens ( choose [ ("VK_BLEND_OVERLAP_UNCORRELATED_EXT", pure VK_BLEND_OVERLAP_UNCORRELATED_EXT) , ("VK_BLEND_OVERLAP_DISJOINT_EXT", pure VK_BLEND_OVERLAP_DISJOINT_EXT) , ("VK_BLEND_OVERLAP_CONJOINT_EXT", pure VK_BLEND_OVERLAP_CONJOINT_EXT) ] +++ prec 10 (do expectP (Ident "VkBlendOverlapEXT") v <- step readPrec pure (VkBlendOverlapEXT v) ) ) -- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_UNCORRELATED_EXT" pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT :: VkBlendOverlapEXT pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT = VkBlendOverlapEXT 0 -- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_DISJOINT_EXT" pattern VK_BLEND_OVERLAP_DISJOINT_EXT :: VkBlendOverlapEXT pattern VK_BLEND_OVERLAP_DISJOINT_EXT = VkBlendOverlapEXT 1 -- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_CONJOINT_EXT" pattern VK_BLEND_OVERLAP_CONJOINT_EXT :: VkBlendOverlapEXT pattern VK_BLEND_OVERLAP_CONJOINT_EXT = VkBlendOverlapEXT 2 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_ZERO_EXT" pattern VK_BLEND_OP_ZERO_EXT :: VkBlendOp pattern VK_BLEND_OP_ZERO_EXT = VkBlendOp 1000148000 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_EXT" pattern VK_BLEND_OP_SRC_EXT :: VkBlendOp pattern VK_BLEND_OP_SRC_EXT = VkBlendOp 1000148001 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_EXT" pattern VK_BLEND_OP_DST_EXT :: VkBlendOp pattern VK_BLEND_OP_DST_EXT = VkBlendOp 1000148002 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OVER_EXT" pattern VK_BLEND_OP_SRC_OVER_EXT :: VkBlendOp pattern VK_BLEND_OP_SRC_OVER_EXT = VkBlendOp 1000148003 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OVER_EXT" pattern VK_BLEND_OP_DST_OVER_EXT :: VkBlendOp pattern VK_BLEND_OP_DST_OVER_EXT = VkBlendOp 1000148004 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_IN_EXT" pattern VK_BLEND_OP_SRC_IN_EXT :: VkBlendOp pattern VK_BLEND_OP_SRC_IN_EXT = VkBlendOp 1000148005 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_IN_EXT" pattern VK_BLEND_OP_DST_IN_EXT :: VkBlendOp pattern VK_BLEND_OP_DST_IN_EXT = VkBlendOp 1000148006 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OUT_EXT" pattern VK_BLEND_OP_SRC_OUT_EXT :: VkBlendOp pattern VK_BLEND_OP_SRC_OUT_EXT = VkBlendOp 1000148007 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OUT_EXT" pattern VK_BLEND_OP_DST_OUT_EXT :: VkBlendOp pattern VK_BLEND_OP_DST_OUT_EXT = VkBlendOp 1000148008 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_ATOP_EXT" pattern VK_BLEND_OP_SRC_ATOP_EXT :: VkBlendOp pattern VK_BLEND_OP_SRC_ATOP_EXT = VkBlendOp 1000148009 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_ATOP_EXT" pattern VK_BLEND_OP_DST_ATOP_EXT :: VkBlendOp pattern VK_BLEND_OP_DST_ATOP_EXT = VkBlendOp 1000148010 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_XOR_EXT" pattern VK_BLEND_OP_XOR_EXT :: VkBlendOp pattern VK_BLEND_OP_XOR_EXT = VkBlendOp 1000148011 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MULTIPLY_EXT" pattern VK_BLEND_OP_MULTIPLY_EXT :: VkBlendOp pattern VK_BLEND_OP_MULTIPLY_EXT = VkBlendOp 1000148012 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SCREEN_EXT" pattern VK_BLEND_OP_SCREEN_EXT :: VkBlendOp pattern VK_BLEND_OP_SCREEN_EXT = VkBlendOp 1000148013 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_OVERLAY_EXT" pattern VK_BLEND_OP_OVERLAY_EXT :: VkBlendOp pattern VK_BLEND_OP_OVERLAY_EXT = VkBlendOp 1000148014 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DARKEN_EXT" pattern VK_BLEND_OP_DARKEN_EXT :: VkBlendOp pattern VK_BLEND_OP_DARKEN_EXT = VkBlendOp 1000148015 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LIGHTEN_EXT" pattern VK_BLEND_OP_LIGHTEN_EXT :: VkBlendOp pattern VK_BLEND_OP_LIGHTEN_EXT = VkBlendOp 1000148016 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORDODGE_EXT" pattern VK_BLEND_OP_COLORDODGE_EXT :: VkBlendOp pattern VK_BLEND_OP_COLORDODGE_EXT = VkBlendOp 1000148017 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORBURN_EXT" pattern VK_BLEND_OP_COLORBURN_EXT :: VkBlendOp pattern VK_BLEND_OP_COLORBURN_EXT = VkBlendOp 1000148018 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDLIGHT_EXT" pattern VK_BLEND_OP_HARDLIGHT_EXT :: VkBlendOp pattern VK_BLEND_OP_HARDLIGHT_EXT = VkBlendOp 1000148019 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SOFTLIGHT_EXT" pattern VK_BLEND_OP_SOFTLIGHT_EXT :: VkBlendOp pattern VK_BLEND_OP_SOFTLIGHT_EXT = VkBlendOp 1000148020 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DIFFERENCE_EXT" pattern VK_BLEND_OP_DIFFERENCE_EXT :: VkBlendOp pattern VK_BLEND_OP_DIFFERENCE_EXT = VkBlendOp 1000148021 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_EXCLUSION_EXT" pattern VK_BLEND_OP_EXCLUSION_EXT :: VkBlendOp pattern VK_BLEND_OP_EXCLUSION_EXT = VkBlendOp 1000148022 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_EXT" pattern VK_BLEND_OP_INVERT_EXT :: VkBlendOp pattern VK_BLEND_OP_INVERT_EXT = VkBlendOp 1000148023 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_RGB_EXT" pattern VK_BLEND_OP_INVERT_RGB_EXT :: VkBlendOp pattern VK_BLEND_OP_INVERT_RGB_EXT = VkBlendOp 1000148024 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARDODGE_EXT" pattern VK_BLEND_OP_LINEARDODGE_EXT :: VkBlendOp pattern VK_BLEND_OP_LINEARDODGE_EXT = VkBlendOp 1000148025 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARBURN_EXT" pattern VK_BLEND_OP_LINEARBURN_EXT :: VkBlendOp pattern VK_BLEND_OP_LINEARBURN_EXT = VkBlendOp 1000148026 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_VIVIDLIGHT_EXT" pattern VK_BLEND_OP_VIVIDLIGHT_EXT :: VkBlendOp pattern VK_BLEND_OP_VIVIDLIGHT_EXT = VkBlendOp 1000148027 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARLIGHT_EXT" pattern VK_BLEND_OP_LINEARLIGHT_EXT :: VkBlendOp pattern VK_BLEND_OP_LINEARLIGHT_EXT = VkBlendOp 1000148028 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PINLIGHT_EXT" pattern VK_BLEND_OP_PINLIGHT_EXT :: VkBlendOp pattern VK_BLEND_OP_PINLIGHT_EXT = VkBlendOp 1000148029 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDMIX_EXT" pattern VK_BLEND_OP_HARDMIX_EXT :: VkBlendOp pattern VK_BLEND_OP_HARDMIX_EXT = VkBlendOp 1000148030 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_HUE_EXT" pattern VK_BLEND_OP_HSL_HUE_EXT :: VkBlendOp pattern VK_BLEND_OP_HSL_HUE_EXT = VkBlendOp 1000148031 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_SATURATION_EXT" pattern VK_BLEND_OP_HSL_SATURATION_EXT :: VkBlendOp pattern VK_BLEND_OP_HSL_SATURATION_EXT = VkBlendOp 1000148032 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_COLOR_EXT" pattern VK_BLEND_OP_HSL_COLOR_EXT :: VkBlendOp pattern VK_BLEND_OP_HSL_COLOR_EXT = VkBlendOp 1000148033 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_LUMINOSITY_EXT" pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT :: VkBlendOp pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT = VkBlendOp 1000148034 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_EXT" pattern VK_BLEND_OP_PLUS_EXT :: VkBlendOp pattern VK_BLEND_OP_PLUS_EXT = VkBlendOp 1000148035 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_EXT" pattern VK_BLEND_OP_PLUS_CLAMPED_EXT :: VkBlendOp pattern VK_BLEND_OP_PLUS_CLAMPED_EXT = VkBlendOp 1000148036 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT" pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: VkBlendOp pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = VkBlendOp 1000148037 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_DARKER_EXT" pattern VK_BLEND_OP_PLUS_DARKER_EXT :: VkBlendOp pattern VK_BLEND_OP_PLUS_DARKER_EXT = VkBlendOp 1000148038 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_EXT" pattern VK_BLEND_OP_MINUS_EXT :: VkBlendOp pattern VK_BLEND_OP_MINUS_EXT = VkBlendOp 1000148039 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_CLAMPED_EXT" pattern VK_BLEND_OP_MINUS_CLAMPED_EXT :: VkBlendOp pattern VK_BLEND_OP_MINUS_CLAMPED_EXT = VkBlendOp 1000148040 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_CONTRAST_EXT" pattern VK_BLEND_OP_CONTRAST_EXT :: VkBlendOp pattern VK_BLEND_OP_CONTRAST_EXT = VkBlendOp 1000148041 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_OVG_EXT" pattern VK_BLEND_OP_INVERT_OVG_EXT :: VkBlendOp pattern VK_BLEND_OP_INVERT_OVG_EXT = VkBlendOp 1000148042 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_RED_EXT" pattern VK_BLEND_OP_RED_EXT :: VkBlendOp pattern VK_BLEND_OP_RED_EXT = VkBlendOp 1000148043 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_GREEN_EXT" pattern VK_BLEND_OP_GREEN_EXT :: VkBlendOp pattern VK_BLEND_OP_GREEN_EXT = VkBlendOp 1000148044 -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_BLUE_EXT" pattern VK_BLEND_OP_BLUE_EXT :: VkBlendOp pattern VK_BLEND_OP_BLUE_EXT = VkBlendOp 1000148045 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = VkStructureType 1000148000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = VkStructureType 1000148001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT" pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = VkStructureType 1000148002 -- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT" pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: VkAccessFlagBits pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = VkAccessFlagBits 0x00080000 -- No documentation found for TopLevel "VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION" pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION :: Integral a => a pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME" pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: (Eq a ,IsString a) => a pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME = "VK_EXT_blend_operation_advanced" -- | VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - Structure describing -- advanced blending features that can be supported by an implementation -- -- = Members -- -- The members of the @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@ -- structure describe the following features: -- -- = Description -- -- - @advancedBlendCoherentOperations@ specifies whether blending using -- [advanced blend -- operations](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#framebuffer-blend-advanced) -- is guaranteed to execute atomically and in [primitive -- order](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#drawing-primitive-order). -- If this is @VK_TRUE@, -- @VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT@ is treated the -- same as @VK_ACCESS_COLOR_ATTACHMENT_READ_BIT@, and advanced blending -- needs no additional synchronization over basic blending. If this is -- @VK_FALSE@, then memory dependencies are required to guarantee order -- between two advanced blending operations that occur on the same -- sample. -- -- If the @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@ structure is -- included in the @pNext@ chain of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2', -- it is filled with values indicating whether each feature is supported. -- @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@ /can/ also be used -- in @pNext@ chain of 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo' -- to enable the features. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT@ -- -- = See Also -- -- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "sType" vkSType :: VkStructureType , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "pNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "advancedBlendCoherentOperations" vkAdvancedBlendCoherentOperations :: VkBool32 } deriving (Eq, Show) instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where sizeOf ~_ = 24 alignment ~_ = 8 peek ptr = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)) *> poke (ptr `plusPtr` 16) (vkAdvancedBlendCoherentOperations (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)) -- | VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - Structure -- describing advanced blending limits that can be supported by an -- implementation -- -- = Members -- -- The members of the @VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT@ -- structure describe the following implementation-dependent limits: -- -- = Description -- -- - @advancedBlendMaxColorAttachments@ is one greater than the highest -- color attachment index that /can/ be used in a subpass, for a -- pipeline that uses an [advanced blend -- operation](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#framebuffer-blend-advanced). -- -- - @advancedBlendIndependentBlend@ specifies whether advanced blend -- operations /can/ vary per-attachment. -- -- - @advancedBlendNonPremultipliedSrcColor@ specifies whether the source -- color /can/ be treated as non-premultiplied. If this is @VK_FALSE@, -- then -- 'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@srcPremultiplied@ -- /must/ be @VK_TRUE@. -- -- - @advancedBlendNonPremultipliedDstColor@ specifies whether the -- destination color /can/ be treated as non-premultiplied. If this is -- @VK_FALSE@, then -- 'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@dstPremultiplied@ -- /must/ be @VK_TRUE@. -- -- - @advancedBlendCorrelatedOverlap@ specifies whether the overlap mode -- /can/ be treated as correlated. If this is @VK_FALSE@, then -- 'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@blendOverlap@ -- /must/ be @VK_BLEND_OVERLAP_UNCORRELATED_EXT@. -- -- - @advancedBlendAllOperations@ specifies whether all advanced blend -- operation enums are supported. See the valid usage of -- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState'. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT@ -- -- If the @VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT@ structure -- is included in the @pNext@ chain of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2', -- it is filled with the implementation-dependent limits. -- -- = See Also -- -- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "sType" vkSType :: VkStructureType , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "pNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendMaxColorAttachments" vkAdvancedBlendMaxColorAttachments :: Word32 , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendIndependentBlend" vkAdvancedBlendIndependentBlend :: VkBool32 , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendNonPremultipliedSrcColor" vkAdvancedBlendNonPremultipliedSrcColor :: VkBool32 , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendNonPremultipliedDstColor" vkAdvancedBlendNonPremultipliedDstColor :: VkBool32 , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendCorrelatedOverlap" vkAdvancedBlendCorrelatedOverlap :: VkBool32 , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "advancedBlendAllOperations" vkAdvancedBlendAllOperations :: VkBool32 } deriving (Eq, Show) instance Storable VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 24) <*> peek (ptr `plusPtr` 28) <*> peek (ptr `plusPtr` 32) <*> peek (ptr `plusPtr` 36) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 16) (vkAdvancedBlendMaxColorAttachments (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 20) (vkAdvancedBlendIndependentBlend (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 24) (vkAdvancedBlendNonPremultipliedSrcColor (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 28) (vkAdvancedBlendNonPremultipliedDstColor (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 32) (vkAdvancedBlendCorrelatedOverlap (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) *> poke (ptr `plusPtr` 36) (vkAdvancedBlendAllOperations (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)) -- | VkPipelineColorBlendAdvancedStateCreateInfoEXT - Structure specifying -- parameters that affect advanced blend operations -- -- = Description -- -- If this structure is not present, @srcPremultiplied@ and -- @dstPremultiplied@ are both considered to be @VK_TRUE@, and -- @blendOverlap@ is considered to be @VK_BLEND_OVERLAP_UNCORRELATED_EXT@. -- -- == Valid Usage -- -- - If the [non-premultiplied source -- color](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-limits-advancedBlendNonPremultipliedSrcColor) -- property is not supported, @srcPremultiplied@ /must/ be @VK_TRUE@ -- -- - If the [non-premultiplied destination -- color](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-limits-advancedBlendNonPremultipliedDstColor) -- property is not supported, @dstPremultiplied@ /must/ be @VK_TRUE@ -- -- - If the [correlated -- overlap](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-limits-advancedBlendCorrelatedOverlap) -- property is not supported, @blendOverlap@ /must/ be -- @VK_BLEND_OVERLAP_UNCORRELATED_EXT@ -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT@ -- -- - @blendOverlap@ /must/ be a valid 'VkBlendOverlapEXT' value -- -- = See Also -- -- 'VkBlendOverlapEXT', @VkBool32@, -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkPipelineColorBlendAdvancedStateCreateInfoEXT = VkPipelineColorBlendAdvancedStateCreateInfoEXT { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @srcPremultiplied@ specifies whether the source color of the blend -- operation is treated as premultiplied. vkSrcPremultiplied :: VkBool32 , -- | @dstPremultiplied@ specifies whether the destination color of the blend -- operation is treated as premultiplied. vkDstPremultiplied :: VkBool32 , -- | @blendOverlap@ is a 'VkBlendOverlapEXT' value specifying how the source -- and destination sample’s coverage is correlated. vkBlendOverlap :: VkBlendOverlapEXT } deriving (Eq, Show) instance Storable VkPipelineColorBlendAdvancedStateCreateInfoEXT where sizeOf ~_ = 32 alignment ~_ = 8 peek ptr = VkPipelineColorBlendAdvancedStateCreateInfoEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 24) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT)) *> poke (ptr `plusPtr` 16) (vkSrcPremultiplied (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT)) *> poke (ptr `plusPtr` 20) (vkDstPremultiplied (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT)) *> poke (ptr `plusPtr` 24) (vkBlendOverlap (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))