{-# language CPP #-} -- | = Name -- -- VK_EXT_extended_dynamic_state3 - device extension -- -- == VK_EXT_extended_dynamic_state3 -- -- [__Name String__] -- @VK_EXT_extended_dynamic_state3@ -- -- [__Extension Type__] -- Device extension -- -- [__Registered Extension Number__] -- 456 -- -- [__Revision__] -- 2 -- -- [__Ratification Status__] -- Ratified -- -- [__Extension and Version Dependencies__] -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2> -- -- [__API Interactions__] -- -- - Interacts with VK_NV_clip_space_w_scaling -- -- - Interacts with VK_NV_coverage_reduction_mode -- -- - Interacts with VK_NV_fragment_coverage_to_color -- -- - Interacts with VK_NV_framebuffer_mixed_samples -- -- - Interacts with VK_NV_representative_fragment_test -- -- - Interacts with VK_NV_shading_rate_image -- -- - Interacts with VK_NV_viewport_swizzle -- -- [__Contact__] -- -- - Piers Daniell -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state3] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_extended_dynamic_state3 extension* > -- -- [__Extension Proposal__] -- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_extended_dynamic_state3.adoc VK_EXT_extended_dynamic_state3> -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2022-09-02 -- -- [__IP Status__] -- No known IP claims. -- -- [__Contributors__] -- -- - Daniel Story, Nintendo -- -- - Jamie Madill, Google -- -- - Jan-Harald Fredriksen, Arm -- -- - Faith Ekstrand, Collabora -- -- - Mike Blumenkrantz, Valve -- -- - Ricardo Garcia, Igalia -- -- - Samuel Pitoiset, Valve -- -- - Shahbaz Youssefi, Google -- -- - Stu Smith, AMD -- -- - Tapani Pälli, Intel -- -- == Description -- -- This extension adds almost all of the remaining pipeline state as -- dynamic state to help applications further reduce the number of -- monolithic pipelines they need to create and bind. -- -- == New Commands -- -- - 'cmdSetAlphaToCoverageEnableEXT' -- -- - 'cmdSetAlphaToOneEnableEXT' -- -- - 'cmdSetColorBlendAdvancedEXT' -- -- - 'cmdSetColorBlendEnableEXT' -- -- - 'cmdSetColorBlendEquationEXT' -- -- - 'cmdSetColorWriteMaskEXT' -- -- - 'cmdSetConservativeRasterizationModeEXT' -- -- - 'cmdSetDepthClampEnableEXT' -- -- - 'cmdSetDepthClipEnableEXT' -- -- - 'cmdSetDepthClipNegativeOneToOneEXT' -- -- - 'cmdSetExtraPrimitiveOverestimationSizeEXT' -- -- - 'cmdSetLineRasterizationModeEXT' -- -- - 'cmdSetLineStippleEnableEXT' -- -- - 'cmdSetLogicOpEnableEXT' -- -- - 'cmdSetPolygonModeEXT' -- -- - 'cmdSetProvokingVertexModeEXT' -- -- - 'cmdSetRasterizationSamplesEXT' -- -- - 'cmdSetRasterizationStreamEXT' -- -- - 'cmdSetSampleLocationsEnableEXT' -- -- - 'cmdSetSampleMaskEXT' -- -- - 'cmdSetTessellationDomainOriginEXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling> -- is supported: -- -- - 'cmdSetViewportWScalingEnableNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode> -- is supported: -- -- - 'cmdSetCoverageReductionModeNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color> -- is supported: -- -- - 'cmdSetCoverageToColorEnableNV' -- -- - 'cmdSetCoverageToColorLocationNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples> -- is supported: -- -- - 'cmdSetCoverageModulationModeNV' -- -- - 'cmdSetCoverageModulationTableEnableNV' -- -- - 'cmdSetCoverageModulationTableNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test> -- is supported: -- -- - 'cmdSetRepresentativeFragmentTestEnableNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image> -- is supported: -- -- - 'cmdSetShadingRateImageEnableNV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle> -- is supported: -- -- - 'cmdSetViewportSwizzleNV' -- -- == New Structures -- -- - 'ColorBlendAdvancedEXT' -- -- - 'ColorBlendEquationEXT' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': -- -- - 'PhysicalDeviceExtendedDynamicState3FeaturesEXT' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': -- -- - 'PhysicalDeviceExtendedDynamicState3PropertiesEXT' -- -- == New Enum Constants -- -- - 'EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME' -- -- - 'EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle> -- is supported: -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' -- -- == Issues -- -- 1) What about the VkPipelineMultisampleStateCreateInfo state -- @sampleShadingEnable@ and @minSampleShading@? -- -- [__UNRESOLVED__] -- -- - @sampleShadingEnable@ and @minSampleShading@ are required when -- compiling the fragment shader, and it is not meaningful to set -- them dynamically since they always need to match the fragment -- shader state, so this hardware state may as well just come from -- the pipeline with the fragment shader. -- -- == Version History -- -- - Revision 2, 2022-07-18 (Piers Daniell) -- -- - Added rasterizationSamples -- -- - Revision 1, 2022-05-18 (Piers Daniell) -- -- - Internal revisions -- -- == See Also -- -- 'ColorBlendAdvancedEXT', 'ColorBlendEquationEXT', -- 'PhysicalDeviceExtendedDynamicState3FeaturesEXT', -- 'PhysicalDeviceExtendedDynamicState3PropertiesEXT', -- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT', -- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT', -- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT', -- 'cmdSetConservativeRasterizationModeEXT', 'cmdSetDepthClampEnableEXT', -- 'cmdSetDepthClipEnableEXT', 'cmdSetDepthClipNegativeOneToOneEXT', -- 'cmdSetExtraPrimitiveOverestimationSizeEXT', -- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT', -- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT', -- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT', -- 'cmdSetRasterizationStreamEXT', 'cmdSetSampleLocationsEnableEXT', -- 'cmdSetSampleMaskEXT', 'cmdSetTessellationDomainOriginEXT' -- -- == Document Notes -- -- For more information, see the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_EXT_extended_dynamic_state3 ( cmdSetTessellationDomainOriginEXT , cmdSetDepthClampEnableEXT , cmdSetPolygonModeEXT , cmdSetRasterizationSamplesEXT , cmdSetSampleMaskEXT , cmdSetAlphaToCoverageEnableEXT , cmdSetAlphaToOneEnableEXT , cmdSetLogicOpEnableEXT , cmdSetColorBlendEnableEXT , cmdSetColorBlendEquationEXT , cmdSetColorWriteMaskEXT , cmdSetRasterizationStreamEXT , cmdSetConservativeRasterizationModeEXT , cmdSetExtraPrimitiveOverestimationSizeEXT , cmdSetDepthClipEnableEXT , cmdSetSampleLocationsEnableEXT , cmdSetColorBlendAdvancedEXT , cmdSetProvokingVertexModeEXT , cmdSetLineRasterizationModeEXT , cmdSetLineStippleEnableEXT , cmdSetDepthClipNegativeOneToOneEXT , cmdSetViewportWScalingEnableNV , cmdSetViewportSwizzleNV , cmdSetCoverageToColorEnableNV , cmdSetCoverageToColorLocationNV , cmdSetCoverageModulationModeNV , cmdSetCoverageModulationTableEnableNV , cmdSetCoverageModulationTableNV , cmdSetShadingRateImageEnableNV , cmdSetCoverageReductionModeNV , cmdSetRepresentativeFragmentTestEnableNV , PhysicalDeviceExtendedDynamicState3FeaturesEXT(..) , PhysicalDeviceExtendedDynamicState3PropertiesEXT(..) , ColorBlendEquationEXT(..) , ColorBlendAdvancedEXT(..) , EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION , pattern EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION , EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME , pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME , ViewportSwizzleNV(..) , ViewportCoordinateSwizzleNV(..) , BlendOverlapEXT(..) , CoverageModulationModeNV(..) , CoverageReductionModeNV(..) , ConservativeRasterizationModeEXT(..) , LineRasterizationModeEXT(..) , ProvokingVertexModeEXT(..) ) where import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytes) import GHC.IO (throwIO) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr) import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Cont (evalContT) import qualified Data.Vector (imapM_) import qualified Data.Vector (length) import Foreign.C.Types (CFloat(..)) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct) import Vulkan.CStruct (ToCStruct(..)) import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO) import Data.String (IsString) import Data.Typeable (Typeable) import Foreign.C.Types (CFloat) import Foreign.C.Types (CFloat(CFloat)) import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) import Foreign.Storable (Storable(poke)) import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) import GHC.IO.Exception (IOErrorType(..)) import GHC.IO.Exception (IOException(..)) import Foreign.Ptr (FunPtr) import Foreign.Ptr (Ptr) import Data.Word (Word32) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..)) import Data.Vector (Vector) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.NamedType ((:::)) import Vulkan.Core10.Enums.BlendFactor (BlendFactor) import Vulkan.Core10.Enums.BlendOp (BlendOp) import Vulkan.Extensions.VK_EXT_blend_operation_advanced (BlendOverlapEXT) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.FundamentalTypes (Bool32(..)) import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..)) import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) import Vulkan.Core10.Handles (CommandBuffer_T) import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT) import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT(..)) import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV) import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV(..)) import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV) import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV(..)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetAlphaToCoverageEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetAlphaToOneEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendAdvancedEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendEquationEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorWriteMaskEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetConservativeRasterizationModeEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationModeNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationTableEnableNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationTableNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageReductionModeNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageToColorEnableNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageToColorLocationNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClampEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClipEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClipNegativeOneToOneEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetExtraPrimitiveOverestimationSizeEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLineRasterizationModeEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLineStippleEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLogicOpEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPolygonModeEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetProvokingVertexModeEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizationSamplesEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizationStreamEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRepresentativeFragmentTestEnableNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetSampleLocationsEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetSampleMaskEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetShadingRateImageEnableNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetTessellationDomainOriginEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportSwizzleNV)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWScalingEnableNV)) import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT) import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT(..)) import Vulkan.Core10.Enums.PolygonMode (PolygonMode) import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..)) import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT) import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT(..)) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(..)) import Vulkan.Core10.FundamentalTypes (SampleMask) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin) import Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin(..)) import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT)) import Vulkan.Extensions.VK_EXT_blend_operation_advanced (BlendOverlapEXT(..)) import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT(..)) import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV(..)) import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV(..)) import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT(..)) import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT(..)) import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportCoordinateSwizzleNV(..)) import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV(..)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetTessellationDomainOriginEXT :: FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) -> Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO () -- | vkCmdSetTessellationDomainOriginEXT - Specify the origin of the -- tessellation domain space dynamically for a command buffer -- -- = Description -- -- This command sets the origin of the tessellation domain space for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'::@domainOrigin@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-None-09423# At least one -- of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameter# -- @domainOrigin@ /must/ be a valid -- 'Vulkan.Core11.Enums.TessellationDomainOrigin.TessellationDomainOrigin' -- value -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetTessellationDomainOriginEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core11.Enums.TessellationDomainOrigin.TessellationDomainOrigin' cmdSetTessellationDomainOriginEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @domainOrigin@ specifies the origin of the tessellation domain space. TessellationDomainOrigin -> io () cmdSetTessellationDomainOriginEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> TessellationDomainOrigin -> io () cmdSetTessellationDomainOriginEXT CommandBuffer commandBuffer TessellationDomainOrigin domainOrigin = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetTessellationDomainOriginEXTPtr :: FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) vkCmdSetTessellationDomainOriginEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) pVkCmdSetTessellationDomainOriginEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds deviceCmds :: DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) vkCmdSetTessellationDomainOriginEXTPtr FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetTessellationDomainOriginEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetTessellationDomainOriginEXT' :: Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO () vkCmdSetTessellationDomainOriginEXT' = FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) -> Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO () mkVkCmdSetTessellationDomainOriginEXT FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) vkCmdSetTessellationDomainOriginEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetTessellationDomainOriginEXT" (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO () vkCmdSetTessellationDomainOriginEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (TessellationDomainOrigin domainOrigin)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetDepthClampEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetDepthClampEnableEXT - Specify dynamically whether depth clamping -- is enabled in the command buffer -- -- = Description -- -- This command sets whether depth clamping is enabled or disabled for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@ -- value used to create the currently active pipeline. -- -- If the depth clamping state is changed dynamically, and the pipeline was -- not created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' -- enabled, then depth clipping is enabled when depth clamping is disabled -- and vice versa. -- -- == Valid Usage -- -- - #VUID-vkCmdSetDepthClampEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp> -- feature is not enabled, @depthClampEnable@ must be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetDepthClampEnableEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetDepthClampEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @depthClampEnable@ specifies whether depth clamping is enabled. ("depthClampEnable" ::: Bool) -> io () cmdSetDepthClampEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetDepthClampEnableEXT CommandBuffer commandBuffer Bool depthClampEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetDepthClampEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClampEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetDepthClampEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClampEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetDepthClampEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetDepthClampEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClampEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetDepthClampEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClampEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetDepthClampEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClampEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool depthClampEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetPolygonModeEXT :: FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) -> Ptr CommandBuffer_T -> PolygonMode -> IO () -- | vkCmdSetPolygonModeEXT - Specify polygon mode dynamically for a command -- buffer -- -- = Description -- -- This command sets the polygon mode for subsequent drawing commands when -- drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT' set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@polygonMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetPolygonModeEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid> -- feature is not enabled, @polygonMode@ /must/ be -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV' -- -- - #VUID-vkCmdSetPolygonModeEXT-polygonMode-07425# If the -- @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@ -- /must/ not be -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV' -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter# @polygonMode@ -- /must/ be a valid 'Vulkan.Core10.Enums.PolygonMode.PolygonMode' -- value -- -- - #VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetPolygonModeEXT-videocoding# This command /must/ only -- be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode' cmdSetPolygonModeEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @polygonMode@ specifies polygon mode. PolygonMode -> io () cmdSetPolygonModeEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> PolygonMode -> io () cmdSetPolygonModeEXT CommandBuffer commandBuffer PolygonMode polygonMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetPolygonModeEXTPtr :: FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) vkCmdSetPolygonModeEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) pVkCmdSetPolygonModeEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) vkCmdSetPolygonModeEXTPtr FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetPolygonModeEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetPolygonModeEXT' :: Ptr CommandBuffer_T -> PolygonMode -> IO () vkCmdSetPolygonModeEXT' = FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) -> Ptr CommandBuffer_T -> PolygonMode -> IO () mkVkCmdSetPolygonModeEXT FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) vkCmdSetPolygonModeEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetPolygonModeEXT" (Ptr CommandBuffer_T -> PolygonMode -> IO () vkCmdSetPolygonModeEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (PolygonMode polygonMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetRasterizationSamplesEXT :: FunPtr (Ptr CommandBuffer_T -> SampleCountFlagBits -> IO ()) -> Ptr CommandBuffer_T -> SampleCountFlagBits -> IO () -- | vkCmdSetRasterizationSamplesEXT - Specify the rasterization samples -- dynamically for a command buffer -- -- = Description -- -- This command sets the @rasterizationSamples@ for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameter# -- @rasterizationSamples@ /must/ be a valid -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetRasterizationSamplesEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' cmdSetRasterizationSamplesEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @rasterizationSamples@ specifies @rasterizationSamples@. ("rasterizationSamples" ::: SampleCountFlagBits) -> io () cmdSetRasterizationSamplesEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ("rasterizationSamples" ::: SampleCountFlagBits) -> io () cmdSetRasterizationSamplesEXT CommandBuffer commandBuffer "rasterizationSamples" ::: SampleCountFlagBits rasterizationSamples = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetRasterizationSamplesEXTPtr :: FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) vkCmdSetRasterizationSamplesEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) pVkCmdSetRasterizationSamplesEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) vkCmdSetRasterizationSamplesEXTPtr FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetRasterizationSamplesEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetRasterizationSamplesEXT' :: Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO () vkCmdSetRasterizationSamplesEXT' = FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) -> Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO () mkVkCmdSetRasterizationSamplesEXT FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) vkCmdSetRasterizationSamplesEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetRasterizationSamplesEXT" (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO () vkCmdSetRasterizationSamplesEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) ("rasterizationSamples" ::: SampleCountFlagBits rasterizationSamples)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetSampleMaskEXT :: FunPtr (Ptr CommandBuffer_T -> SampleCountFlagBits -> Ptr SampleMask -> IO ()) -> Ptr CommandBuffer_T -> SampleCountFlagBits -> Ptr SampleMask -> IO () -- | vkCmdSetSampleMaskEXT - Specify the sample mask dynamically for a -- command buffer -- -- = Description -- -- This command sets the sample mask for subsequent drawing commands when -- drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@pSampleMask@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetSampleMaskEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter# @commandBuffer@ -- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetSampleMaskEXT-samples-parameter# @samples@ /must/ be a -- valid 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' -- value -- -- - #VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameter# @pSampleMask@ -- /must/ be a valid pointer to an array of -- \(\lceil{\mathit{samples} \over 32}\rceil\) -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values -- -- - #VUID-vkCmdSetSampleMaskEXT-commandBuffer-recording# @commandBuffer@ -- /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetSampleMaskEXT-videocoding# This command /must/ only be -- called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits', -- 'Vulkan.Core10.FundamentalTypes.SampleMask' cmdSetSampleMaskEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @samples@ specifies the number of sample bits in the @pSampleMask@. ("samples" ::: SampleCountFlagBits) -> -- | @pSampleMask@ is a pointer to an array of -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values, where the array size -- is based on the @samples@ parameter. ("sampleMask" ::: Vector SampleMask) -> io () cmdSetSampleMaskEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ("rasterizationSamples" ::: SampleCountFlagBits) -> ("sampleMask" ::: Vector SampleMask) -> io () cmdSetSampleMaskEXT CommandBuffer commandBuffer "rasterizationSamples" ::: SampleCountFlagBits samples "sampleMask" ::: Vector SampleMask sampleMask = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetSampleMaskEXTPtr :: FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) vkCmdSetSampleMaskEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) pVkCmdSetSampleMaskEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) vkCmdSetSampleMaskEXTPtr FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetSampleMaskEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetSampleMaskEXT' :: Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO () vkCmdSetSampleMaskEXT' = FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) -> Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO () mkVkCmdSetSampleMaskEXT FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO ()) vkCmdSetSampleMaskEXTPtr Ptr SampleMask pPSampleMask <- ((Ptr SampleMask -> IO ()) -> IO ()) -> ContT () IO (Ptr SampleMask) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr SampleMask -> IO ()) -> IO ()) -> ContT () IO (Ptr SampleMask)) -> ((Ptr SampleMask -> IO ()) -> IO ()) -> ContT () IO (Ptr SampleMask) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @SampleMask ((("sampleMask" ::: Vector SampleMask) -> Int forall a. Vector a -> Int Data.Vector.length ("sampleMask" ::: Vector SampleMask sampleMask)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 4) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> SampleMask -> IO ()) -> ("sampleMask" ::: Vector SampleMask) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i SampleMask e -> Ptr SampleMask -> SampleMask -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr SampleMask pPSampleMask Ptr SampleMask -> Int -> Ptr SampleMask forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 4 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr SampleMask) (SampleMask e)) ("sampleMask" ::: Vector SampleMask sampleMask) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetSampleMaskEXT" (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> Ptr SampleMask -> IO () vkCmdSetSampleMaskEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) ("rasterizationSamples" ::: SampleCountFlagBits samples) (Ptr SampleMask pPSampleMask)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetAlphaToCoverageEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetAlphaToCoverageEnableEXT - Specify the alpha to coverage enable -- state dynamically for a command buffer -- -- = Description -- -- This command sets the @alphaToCoverageEnable@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@alphaToCoverageEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetAlphaToCoverageEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @alphaToCoverageEnable@ specifies the @alphaToCoverageEnable@ state. ("alphaToCoverageEnable" ::: Bool) -> io () cmdSetAlphaToCoverageEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetAlphaToCoverageEnableEXT CommandBuffer commandBuffer Bool alphaToCoverageEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetAlphaToCoverageEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToCoverageEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetAlphaToCoverageEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToCoverageEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetAlphaToCoverageEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetAlphaToCoverageEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetAlphaToCoverageEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetAlphaToCoverageEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToCoverageEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetAlphaToCoverageEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetAlphaToCoverageEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool alphaToCoverageEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetAlphaToOneEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetAlphaToOneEnableEXT - Specify the alpha to one enable state -- dynamically for a command buffer -- -- = Description -- -- This command sets the @alphaToOneEnable@ state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@alphaToOneEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne> -- feature is not enabled, @alphaToOneEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetAlphaToOneEnableEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetAlphaToOneEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @alphaToOneEnable@ specifies the @alphaToOneEnable@ state. ("alphaToOneEnable" ::: Bool) -> io () cmdSetAlphaToOneEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetAlphaToOneEnableEXT CommandBuffer commandBuffer Bool alphaToOneEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetAlphaToOneEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToOneEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetAlphaToOneEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToOneEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetAlphaToOneEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetAlphaToOneEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetAlphaToOneEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetAlphaToOneEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetAlphaToOneEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetAlphaToOneEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetAlphaToOneEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool alphaToOneEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetLogicOpEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetLogicOpEnableEXT - Specify dynamically whether logical -- operations are enabled for a command buffer -- -- = Description -- -- This command sets whether logical operations are enabled for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT' set -- in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@logicOpEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetLogicOpEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp> -- feature is not enabled, @logicOpEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetLogicOpEnableEXT-videocoding# This command /must/ only -- be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetLogicOpEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @logicOpEnable@ specifies whether logical operations are enabled. ("logicOpEnable" ::: Bool) -> io () cmdSetLogicOpEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetLogicOpEnableEXT CommandBuffer commandBuffer Bool logicOpEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetLogicOpEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLogicOpEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetLogicOpEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLogicOpEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetLogicOpEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetLogicOpEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetLogicOpEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetLogicOpEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLogicOpEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetLogicOpEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetLogicOpEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool logicOpEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetColorBlendEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Bool32 -> IO () -- | vkCmdSetColorBlendEnableEXT - Specify the @blendEnable@ for each -- attachment dynamically for a command buffer -- -- = Description -- -- This command sets the color blending enable of the specified color -- attachments for subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@blendEnable@ -- values used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetColorBlendEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameter# -- @pColorBlendEnables@ /must/ be a valid pointer to an array of -- @attachmentCount@ 'Vulkan.Core10.FundamentalTypes.Bool32' values -- -- - #VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetColorBlendEnableEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- - #VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylength# -- @attachmentCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetColorBlendEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @firstAttachment@ the first color attachment the color blending enable -- applies. ("firstAttachment" ::: Word32) -> -- | @pColorBlendEnables@ an array of booleans to indicate whether color -- blending is enabled for the corresponding attachment. ("colorBlendEnables" ::: Vector Bool) -> io () cmdSetColorBlendEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> ("colorBlendEnables" ::: Vector Bool) -> io () cmdSetColorBlendEnableEXT CommandBuffer commandBuffer SampleMask firstAttachment "colorBlendEnables" ::: Vector Bool colorBlendEnables = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetColorBlendEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) vkCmdSetColorBlendEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) pVkCmdSetColorBlendEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) vkCmdSetColorBlendEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetColorBlendEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetColorBlendEnableEXT' :: Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO () vkCmdSetColorBlendEnableEXT' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO () mkVkCmdSetColorBlendEnableEXT FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO ()) vkCmdSetColorBlendEnableEXTPtr Ptr Bool32 pPColorBlendEnables <- ((Ptr Bool32 -> IO ()) -> IO ()) -> ContT () IO (Ptr Bool32) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr Bool32 -> IO ()) -> IO ()) -> ContT () IO (Ptr Bool32)) -> ((Ptr Bool32 -> IO ()) -> IO ()) -> ContT () IO (Ptr Bool32) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @Bool32 ((("colorBlendEnables" ::: Vector Bool) -> Int forall a. Vector a -> Int Data.Vector.length ("colorBlendEnables" ::: Vector Bool colorBlendEnables)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 4) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> Bool -> IO ()) -> ("colorBlendEnables" ::: Vector Bool) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i Bool e -> Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr Bool32 pPColorBlendEnables Ptr Bool32 -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 4 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr Bool32) (Bool -> Bool32 boolToBool32 (Bool e))) ("colorBlendEnables" ::: Vector Bool colorBlendEnables) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetColorBlendEnableEXT" (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr Bool32 -> IO () vkCmdSetColorBlendEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask firstAttachment) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("colorBlendEnables" ::: Vector Bool) -> Int forall a. Vector a -> Int Data.Vector.length (("colorBlendEnables" ::: Vector Bool) -> Int) -> ("colorBlendEnables" ::: Vector Bool) -> Int forall a b. (a -> b) -> a -> b $ ("colorBlendEnables" ::: Vector Bool colorBlendEnables)) :: Word32)) (Ptr Bool32 pPColorBlendEnables)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetColorBlendEquationEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendEquationEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendEquationEXT -> IO () -- | vkCmdSetColorBlendEquationEXT - Specify the blend factors and operations -- dynamically for a command buffer -- -- = Description -- -- This command sets the color blending factors and operations of the -- specified attachments for subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@srcColorBlendFactor@, -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@dstColorBlendFactor@, -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorBlendOp@, -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@srcAlphaBlendFactor@, -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@dstAlphaBlendFactor@, -- and -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@alphaBlendOp@ -- values used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetColorBlendEquationEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameter# -- @pColorBlendEquations@ /must/ be a valid pointer to an array of -- @attachmentCount@ valid 'ColorBlendEquationEXT' structures -- -- - #VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetColorBlendEquationEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- - #VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylength# -- @attachmentCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'ColorBlendEquationEXT', 'Vulkan.Core10.Handles.CommandBuffer' cmdSetColorBlendEquationEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @firstAttachment@ the first color attachment the color blend factors and -- operations apply to. ("firstAttachment" ::: Word32) -> -- | @pColorBlendEquations@ an array of 'ColorBlendEquationEXT' structs that -- specify the color blend factors and operations for the corresponding -- attachments. ("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> io () cmdSetColorBlendEquationEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> ("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> io () cmdSetColorBlendEquationEXT CommandBuffer commandBuffer SampleMask firstAttachment "colorBlendEquations" ::: Vector ColorBlendEquationEXT colorBlendEquations = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetColorBlendEquationEXTPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) vkCmdSetColorBlendEquationEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) pVkCmdSetColorBlendEquationEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) vkCmdSetColorBlendEquationEXTPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetColorBlendEquationEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetColorBlendEquationEXT' :: Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO () vkCmdSetColorBlendEquationEXT' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO () mkVkCmdSetColorBlendEquationEXT FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO ()) vkCmdSetColorBlendEquationEXTPtr Ptr ColorBlendEquationEXT pPColorBlendEquations <- ((Ptr ColorBlendEquationEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendEquationEXT) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr ColorBlendEquationEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendEquationEXT)) -> ((Ptr ColorBlendEquationEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendEquationEXT) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @ColorBlendEquationEXT ((("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> Int forall a. Vector a -> Int Data.Vector.length ("colorBlendEquations" ::: Vector ColorBlendEquationEXT colorBlendEquations)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 24) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> ColorBlendEquationEXT -> IO ()) -> ("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i ColorBlendEquationEXT e -> Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr ColorBlendEquationEXT pPColorBlendEquations Ptr ColorBlendEquationEXT -> Int -> Ptr ColorBlendEquationEXT forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 24 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr ColorBlendEquationEXT) (ColorBlendEquationEXT e)) ("colorBlendEquations" ::: Vector ColorBlendEquationEXT colorBlendEquations) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetColorBlendEquationEXT" (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendEquationEXT -> IO () vkCmdSetColorBlendEquationEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask firstAttachment) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> Int forall a. Vector a -> Int Data.Vector.length (("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> Int) -> ("colorBlendEquations" ::: Vector ColorBlendEquationEXT) -> Int forall a b. (a -> b) -> a -> b $ ("colorBlendEquations" ::: Vector ColorBlendEquationEXT colorBlendEquations)) :: Word32)) (Ptr ColorBlendEquationEXT pPColorBlendEquations)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetColorWriteMaskEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorComponentFlags -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorComponentFlags -> IO () -- | vkCmdSetColorWriteMaskEXT - Specify the color write masks for each -- attachment dynamically for a command buffer -- -- = Description -- -- This command sets the color write masks of the specified attachments for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorWriteMask@ -- values used to create the currently active pipeline. -- -- Note -- -- Formats with bits that are shared between components specified by -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits', -- such as 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', -- cannot have their channels individually masked by this functionality; -- either all components that share bits have to be enabled, or none of -- them. -- -- == Valid Usage -- -- - #VUID-vkCmdSetColorWriteMaskEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameter# -- @pColorWriteMasks@ /must/ be a valid pointer to an array of -- @attachmentCount@ valid combinations of -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits' -- values -- -- - #VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetColorWriteMaskEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- - #VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylength# -- @attachmentCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetColorWriteMaskEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @firstAttachment@ the first color attachment the color write masks apply -- to. ("firstAttachment" ::: Word32) -> -- | @pColorWriteMasks@ an array of -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags' values -- that specify the color write masks of the corresponding attachments. ("colorWriteMasks" ::: Vector ColorComponentFlags) -> io () cmdSetColorWriteMaskEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> ("colorWriteMasks" ::: Vector ColorComponentFlags) -> io () cmdSetColorWriteMaskEXT CommandBuffer commandBuffer SampleMask firstAttachment "colorWriteMasks" ::: Vector ColorComponentFlags colorWriteMasks = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetColorWriteMaskEXTPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) vkCmdSetColorWriteMaskEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) pVkCmdSetColorWriteMaskEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) vkCmdSetColorWriteMaskEXTPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetColorWriteMaskEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetColorWriteMaskEXT' :: Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO () vkCmdSetColorWriteMaskEXT' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO () mkVkCmdSetColorWriteMaskEXT FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO ()) vkCmdSetColorWriteMaskEXTPtr Ptr ColorComponentFlags pPColorWriteMasks <- ((Ptr ColorComponentFlags -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorComponentFlags) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr ColorComponentFlags -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorComponentFlags)) -> ((Ptr ColorComponentFlags -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorComponentFlags) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @ColorComponentFlags ((("colorWriteMasks" ::: Vector ColorComponentFlags) -> Int forall a. Vector a -> Int Data.Vector.length ("colorWriteMasks" ::: Vector ColorComponentFlags colorWriteMasks)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 4) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> ColorComponentFlags -> IO ()) -> ("colorWriteMasks" ::: Vector ColorComponentFlags) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i ColorComponentFlags e -> Ptr ColorComponentFlags -> ColorComponentFlags -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr ColorComponentFlags pPColorWriteMasks Ptr ColorComponentFlags -> Int -> Ptr ColorComponentFlags forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 4 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr ColorComponentFlags) (ColorComponentFlags e)) ("colorWriteMasks" ::: Vector ColorComponentFlags colorWriteMasks) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetColorWriteMaskEXT" (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorComponentFlags -> IO () vkCmdSetColorWriteMaskEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask firstAttachment) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("colorWriteMasks" ::: Vector ColorComponentFlags) -> Int forall a. Vector a -> Int Data.Vector.length (("colorWriteMasks" ::: Vector ColorComponentFlags) -> Int) -> ("colorWriteMasks" ::: Vector ColorComponentFlags) -> Int forall a b. (a -> b) -> a -> b $ ("colorWriteMasks" ::: Vector ColorComponentFlags colorWriteMasks)) :: Word32)) (Ptr ColorComponentFlags pPColorWriteMasks)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetRasterizationStreamEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO () -- | vkCmdSetRasterizationStreamEXT - Specify the rasterization stream -- dynamically for a command buffer -- -- = Description -- -- This command sets the @rasterizationStream@ state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetRasterizationStreamEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411# The -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412# -- @rasterizationStream@ /must/ be less than -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@ -- -- - #VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413# -- @rasterizationStream@ /must/ be zero if -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackRasterizationStreamSelect@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetRasterizationStreamEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetRasterizationStreamEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @rasterizationStream@ specifies the @rasterizationStream@ state. ("rasterizationStream" ::: Word32) -> io () cmdSetRasterizationStreamEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> io () cmdSetRasterizationStreamEXT CommandBuffer commandBuffer SampleMask rasterizationStream = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetRasterizationStreamEXTPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetRasterizationStreamEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) pVkCmdSetRasterizationStreamEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetRasterizationStreamEXTPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetRasterizationStreamEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetRasterizationStreamEXT' :: Ptr CommandBuffer_T -> SampleMask -> IO () vkCmdSetRasterizationStreamEXT' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> IO () mkVkCmdSetRasterizationStreamEXT FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetRasterizationStreamEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetRasterizationStreamEXT" (Ptr CommandBuffer_T -> SampleMask -> IO () vkCmdSetRasterizationStreamEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask rasterizationStream)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetConservativeRasterizationModeEXT :: FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO () -- | vkCmdSetConservativeRasterizationModeEXT - Specify the conservative -- rasterization mode dynamically for a command buffer -- -- = Description -- -- This command sets the @conservativeRasterizationMode@ state for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423# At least -- one of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameter# -- @conservativeRasterizationMode@ /must/ be a valid -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.ConservativeRasterizationModeEXT' -- value -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpool# -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetConservativeRasterizationModeEXT-videocoding# This -- command /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.ConservativeRasterizationModeEXT' cmdSetConservativeRasterizationModeEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @conservativeRasterizationMode@ specifies the -- @conservativeRasterizationMode@ state. ConservativeRasterizationModeEXT -> io () cmdSetConservativeRasterizationModeEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ConservativeRasterizationModeEXT -> io () cmdSetConservativeRasterizationModeEXT CommandBuffer commandBuffer ConservativeRasterizationModeEXT conservativeRasterizationMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetConservativeRasterizationModeEXTPtr :: FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) vkCmdSetConservativeRasterizationModeEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) pVkCmdSetConservativeRasterizationModeEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) vkCmdSetConservativeRasterizationModeEXTPtr FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetConservativeRasterizationModeEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetConservativeRasterizationModeEXT' :: Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO () vkCmdSetConservativeRasterizationModeEXT' = FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO () mkVkCmdSetConservativeRasterizationModeEXT FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) vkCmdSetConservativeRasterizationModeEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetConservativeRasterizationModeEXT" (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO () vkCmdSetConservativeRasterizationModeEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (ConservativeRasterizationModeEXT conservativeRasterizationMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetExtraPrimitiveOverestimationSizeEXT :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO () -- | vkCmdSetExtraPrimitiveOverestimationSizeEXT - Specify the conservative -- rasterization extra primitive overestimation size dynamically for a -- command buffer -- -- = Description -- -- This command sets the @extraPrimitiveOverestimationSize@ for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@extraPrimitiveOverestimationSize@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423# At -- least one of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428# -- @extraPrimitiveOverestimationSize@ /must/ be in the range of @0.0@ -- to -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT'::@maxExtraPrimitiveOverestimationSize@ -- inclusive -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpool# -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocoding# This -- command /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetExtraPrimitiveOverestimationSizeEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @extraPrimitiveOverestimationSize@ specifies the -- @extraPrimitiveOverestimationSize@. ("extraPrimitiveOverestimationSize" ::: Float) -> io () cmdSetExtraPrimitiveOverestimationSizeEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ("extraPrimitiveOverestimationSize" ::: Float) -> io () cmdSetExtraPrimitiveOverestimationSizeEXT CommandBuffer commandBuffer "extraPrimitiveOverestimationSize" ::: Float extraPrimitiveOverestimationSize = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) pVkCmdSetExtraPrimitiveOverestimationSizeEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetExtraPrimitiveOverestimationSizeEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetExtraPrimitiveOverestimationSizeEXT' :: Ptr CommandBuffer_T -> CFloat -> IO () vkCmdSetExtraPrimitiveOverestimationSizeEXT' = FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO () mkVkCmdSetExtraPrimitiveOverestimationSizeEXT FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetExtraPrimitiveOverestimationSizeEXT" (Ptr CommandBuffer_T -> CFloat -> IO () vkCmdSetExtraPrimitiveOverestimationSizeEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (("extraPrimitiveOverestimationSize" ::: Float) -> CFloat CFloat ("extraPrimitiveOverestimationSize" ::: Float extraPrimitiveOverestimationSize))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetDepthClipEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetDepthClipEnableEXT - Specify dynamically whether depth clipping -- is enabled in the command buffer -- -- = Description -- -- This command sets whether depth clipping is enabled or disabled for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'::@depthClipEnable@ -- value used to create the currently active pipeline, or is set to the -- inverse of -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@ -- if -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT' -- is not specified. -- -- == Valid Usage -- -- - #VUID-vkCmdSetDepthClipEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451# The -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable> -- feature /must/ be enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetDepthClipEnableEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetDepthClipEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @depthClipEnable@ specifies whether depth clipping is enabled. ("depthClipEnable" ::: Bool) -> io () cmdSetDepthClipEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetDepthClipEnableEXT CommandBuffer commandBuffer Bool depthClipEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetDepthClipEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetDepthClipEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetDepthClipEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetDepthClipEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClipEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetDepthClipEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetDepthClipEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClipEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool depthClipEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetSampleLocationsEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetSampleLocationsEnableEXT - Specify the samples locations enable -- state dynamically for a command buffer -- -- = Description -- -- This command sets the @sampleLocationsEnable@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetSampleLocationsEnableEXT-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetSampleLocationsEnableEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetSampleLocationsEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @sampleLocationsEnable@ specifies the @sampleLocationsEnable@ state. ("sampleLocationsEnable" ::: Bool) -> io () cmdSetSampleLocationsEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetSampleLocationsEnableEXT CommandBuffer commandBuffer Bool sampleLocationsEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetSampleLocationsEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetSampleLocationsEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetSampleLocationsEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetSampleLocationsEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetSampleLocationsEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetSampleLocationsEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetSampleLocationsEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetSampleLocationsEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetSampleLocationsEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetSampleLocationsEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetSampleLocationsEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool sampleLocationsEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetColorBlendAdvancedEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendAdvancedEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendAdvancedEXT -> IO () -- | vkCmdSetColorBlendAdvancedEXT - Specify the advanced color blend state -- dynamically for a command buffer -- -- = Description -- -- This command sets the advanced blend operation parameters of the -- specified attachments for subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@srcPremultiplied@, -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@dstPremultiplied@, -- and -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@blendOverlap@ -- values used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameter# -- @pColorBlendAdvanced@ /must/ be a valid pointer to an array of -- @attachmentCount@ valid 'ColorBlendAdvancedEXT' structures -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- - #VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylength# -- @attachmentCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'ColorBlendAdvancedEXT', 'Vulkan.Core10.Handles.CommandBuffer' cmdSetColorBlendAdvancedEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @firstAttachment@ the first color attachment the advanced blend -- parameters apply to. ("firstAttachment" ::: Word32) -> -- | @pColorBlendAdvanced@ an array of 'ColorBlendAdvancedEXT' structs that -- specify the advanced color blend parameters for the corresponding -- attachments. ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> io () cmdSetColorBlendAdvancedEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> io () cmdSetColorBlendAdvancedEXT CommandBuffer commandBuffer SampleMask firstAttachment "colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT colorBlendAdvanced = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetColorBlendAdvancedEXTPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) vkCmdSetColorBlendAdvancedEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) pVkCmdSetColorBlendAdvancedEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) vkCmdSetColorBlendAdvancedEXTPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetColorBlendAdvancedEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetColorBlendAdvancedEXT' :: Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO () vkCmdSetColorBlendAdvancedEXT' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO () mkVkCmdSetColorBlendAdvancedEXT FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO ()) vkCmdSetColorBlendAdvancedEXTPtr Ptr ColorBlendAdvancedEXT pPColorBlendAdvanced <- ((Ptr ColorBlendAdvancedEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendAdvancedEXT) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr ColorBlendAdvancedEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendAdvancedEXT)) -> ((Ptr ColorBlendAdvancedEXT -> IO ()) -> IO ()) -> ContT () IO (Ptr ColorBlendAdvancedEXT) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @ColorBlendAdvancedEXT ((("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> Int forall a. Vector a -> Int Data.Vector.length ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT colorBlendAdvanced)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 20) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> ColorBlendAdvancedEXT -> IO ()) -> ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i ColorBlendAdvancedEXT e -> Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr ColorBlendAdvancedEXT pPColorBlendAdvanced Ptr ColorBlendAdvancedEXT -> Int -> Ptr ColorBlendAdvancedEXT forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 20 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr ColorBlendAdvancedEXT) (ColorBlendAdvancedEXT e)) ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT colorBlendAdvanced) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetColorBlendAdvancedEXT" (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ColorBlendAdvancedEXT -> IO () vkCmdSetColorBlendAdvancedEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask firstAttachment) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> Int forall a. Vector a -> Int Data.Vector.length (("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> Int) -> ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT) -> Int forall a b. (a -> b) -> a -> b $ ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT colorBlendAdvanced)) :: Word32)) (Ptr ColorBlendAdvancedEXT pPColorBlendAdvanced)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetProvokingVertexModeEXT :: FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO () -- | vkCmdSetProvokingVertexModeEXT - Specify the provoking vertex mode -- dynamically for a command buffer -- -- = Description -- -- This command sets the @provokingVertexMode@ state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447# If -- @provokingVertexMode@ is -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT', -- then the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast> -- feature /must/ be enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameter# -- @provokingVertexMode@ /must/ be a valid -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.ProvokingVertexModeEXT' -- value -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetProvokingVertexModeEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.ProvokingVertexModeEXT' cmdSetProvokingVertexModeEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @provokingVertexMode@ specifies the @provokingVertexMode@ state. ProvokingVertexModeEXT -> io () cmdSetProvokingVertexModeEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ProvokingVertexModeEXT -> io () cmdSetProvokingVertexModeEXT CommandBuffer commandBuffer ProvokingVertexModeEXT provokingVertexMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetProvokingVertexModeEXTPtr :: FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) vkCmdSetProvokingVertexModeEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) pVkCmdSetProvokingVertexModeEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) vkCmdSetProvokingVertexModeEXTPtr FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetProvokingVertexModeEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetProvokingVertexModeEXT' :: Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO () vkCmdSetProvokingVertexModeEXT' = FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO () mkVkCmdSetProvokingVertexModeEXT FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) vkCmdSetProvokingVertexModeEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetProvokingVertexModeEXT" (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO () vkCmdSetProvokingVertexModeEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (ProvokingVertexModeEXT provokingVertexMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetLineRasterizationModeEXT :: FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO () -- | vkCmdSetLineRasterizationModeEXT - Specify the line rasterization mode -- dynamically for a command buffer -- -- = Description -- -- This command sets the @lineRasterizationMode@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'::@lineRasterizationMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418# -- If @lineRasterizationMode@ is -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', -- then the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLines rectangularLines> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419# -- If @lineRasterizationMode@ is -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT', -- then the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420# -- If @lineRasterizationMode@ is -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT', -- then the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-smoothLines smoothLines> -- feature /must/ be enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameter# -- @lineRasterizationMode@ /must/ be a valid -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LineRasterizationModeEXT' -- value -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetLineRasterizationModeEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LineRasterizationModeEXT' cmdSetLineRasterizationModeEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @lineRasterizationMode@ specifies the @lineRasterizationMode@ state. LineRasterizationModeEXT -> io () cmdSetLineRasterizationModeEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> LineRasterizationModeEXT -> io () cmdSetLineRasterizationModeEXT CommandBuffer commandBuffer LineRasterizationModeEXT lineRasterizationMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetLineRasterizationModeEXTPtr :: FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) vkCmdSetLineRasterizationModeEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) pVkCmdSetLineRasterizationModeEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) vkCmdSetLineRasterizationModeEXTPtr FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetLineRasterizationModeEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetLineRasterizationModeEXT' :: Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO () vkCmdSetLineRasterizationModeEXT' = FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO () mkVkCmdSetLineRasterizationModeEXT FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) vkCmdSetLineRasterizationModeEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetLineRasterizationModeEXT" (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO () vkCmdSetLineRasterizationModeEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (LineRasterizationModeEXT lineRasterizationMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetLineStippleEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetLineStippleEnableEXT - Specify the line stipple enable -- dynamically for a command buffer -- -- = Description -- -- This command sets the @stippledLineEnable@ state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'::@stippledLineEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetLineStippleEnableEXT-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetLineStippleEnableEXT-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetLineStippleEnableEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @stippledLineEnable@ specifies the @stippledLineEnable@ state. ("stippledLineEnable" ::: Bool) -> io () cmdSetLineStippleEnableEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetLineStippleEnableEXT CommandBuffer commandBuffer Bool stippledLineEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetLineStippleEnableEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLineStippleEnableEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetLineStippleEnableEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLineStippleEnableEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetLineStippleEnableEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetLineStippleEnableEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetLineStippleEnableEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetLineStippleEnableEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetLineStippleEnableEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetLineStippleEnableEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetLineStippleEnableEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool stippledLineEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetDepthClipNegativeOneToOneEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetDepthClipNegativeOneToOneEXT - Specify the negative one to one -- depth clip mode dynamically for a command buffer -- -- = Description -- -- This command sets the @negativeOneToOne@ state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423# At least one -- of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453# -- The -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl> -- feature /must/ be enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpool# -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetDepthClipNegativeOneToOneEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @negativeOneToOne@ specifies the @negativeOneToOne@ state. ("negativeOneToOne" ::: Bool) -> io () cmdSetDepthClipNegativeOneToOneEXT :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetDepthClipNegativeOneToOneEXT CommandBuffer commandBuffer Bool negativeOneToOne = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetDepthClipNegativeOneToOneEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipNegativeOneToOneEXTPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetDepthClipNegativeOneToOneEXT (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipNegativeOneToOneEXTPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetDepthClipNegativeOneToOneEXT is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetDepthClipNegativeOneToOneEXT' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClipNegativeOneToOneEXT' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetDepthClipNegativeOneToOneEXT FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetDepthClipNegativeOneToOneEXTPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetDepthClipNegativeOneToOneEXT" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetDepthClipNegativeOneToOneEXT' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool negativeOneToOne))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetViewportWScalingEnableNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetViewportWScalingEnableNV - Specify the viewport W scaling enable -- state dynamically for a command buffer -- -- = Description -- -- This command sets the @viewportWScalingEnable@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportWScalingEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetViewportWScalingEnableNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetViewportWScalingEnableNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetViewportWScalingEnableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @viewportWScalingEnable@ specifies the @viewportWScalingEnable@ state. ("viewportWScalingEnable" ::: Bool) -> io () cmdSetViewportWScalingEnableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetViewportWScalingEnableNV CommandBuffer commandBuffer Bool viewportWScalingEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetViewportWScalingEnableNVPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetViewportWScalingEnableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetViewportWScalingEnableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetViewportWScalingEnableNVPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetViewportWScalingEnableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetViewportWScalingEnableNV' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetViewportWScalingEnableNV' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetViewportWScalingEnableNV FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetViewportWScalingEnableNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetViewportWScalingEnableNV" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetViewportWScalingEnableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool viewportWScalingEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetViewportSwizzleNV :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ViewportSwizzleNV -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ViewportSwizzleNV -> IO () -- | vkCmdSetViewportSwizzleNV - Specify the viewport swizzle state -- dynamically for a command buffer -- -- = Description -- -- This command sets the viewport swizzle state for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' set -- in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@, -- and -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@pViewportSwizzles@ -- values used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetViewportSwizzleNV-None-09423# At least one of the -- following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter# -- @pViewportSwizzles@ /must/ be a valid pointer to an array of -- @viewportCount@ valid -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV' -- structures -- -- - #VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetViewportSwizzleNV-videocoding# This command /must/ -- only be called outside of a video coding scope -- -- - #VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylength# -- @viewportCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV' cmdSetViewportSwizzleNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @firstViewport@ is the index of the first viewport whose parameters are -- updated by the command. ("firstViewport" ::: Word32) -> -- | @pViewportSwizzles@ is a pointer to an array of -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV' structures -- specifying viewport swizzles. ("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> io () cmdSetViewportSwizzleNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> ("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> io () cmdSetViewportSwizzleNV CommandBuffer commandBuffer SampleMask firstViewport "viewportSwizzles" ::: Vector ViewportSwizzleNV viewportSwizzles = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetViewportSwizzleNVPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) vkCmdSetViewportSwizzleNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) pVkCmdSetViewportSwizzleNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) vkCmdSetViewportSwizzleNVPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetViewportSwizzleNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetViewportSwizzleNV' :: Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO () vkCmdSetViewportSwizzleNV' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO () mkVkCmdSetViewportSwizzleNV FunPtr (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO ()) vkCmdSetViewportSwizzleNVPtr Ptr ViewportSwizzleNV pPViewportSwizzles <- ((Ptr ViewportSwizzleNV -> IO ()) -> IO ()) -> ContT () IO (Ptr ViewportSwizzleNV) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr ViewportSwizzleNV -> IO ()) -> IO ()) -> ContT () IO (Ptr ViewportSwizzleNV)) -> ((Ptr ViewportSwizzleNV -> IO ()) -> IO ()) -> ContT () IO (Ptr ViewportSwizzleNV) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @ViewportSwizzleNV ((("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> Int forall a. Vector a -> Int Data.Vector.length ("viewportSwizzles" ::: Vector ViewportSwizzleNV viewportSwizzles)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 16) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> ViewportSwizzleNV -> IO ()) -> ("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i ViewportSwizzleNV e -> Ptr ViewportSwizzleNV -> ViewportSwizzleNV -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr ViewportSwizzleNV pPViewportSwizzles Ptr ViewportSwizzleNV -> Int -> Ptr ViewportSwizzleNV forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 16 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr ViewportSwizzleNV) (ViewportSwizzleNV e)) ("viewportSwizzles" ::: Vector ViewportSwizzleNV viewportSwizzles) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetViewportSwizzleNV" (Ptr CommandBuffer_T -> SampleMask -> SampleMask -> Ptr ViewportSwizzleNV -> IO () vkCmdSetViewportSwizzleNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask firstViewport) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> Int forall a. Vector a -> Int Data.Vector.length (("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> Int) -> ("viewportSwizzles" ::: Vector ViewportSwizzleNV) -> Int forall a b. (a -> b) -> a -> b $ ("viewportSwizzles" ::: Vector ViewportSwizzleNV viewportSwizzles)) :: Word32)) (Ptr ViewportSwizzleNV pPViewportSwizzles)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageToColorEnableNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetCoverageToColorEnableNV - Specify the coverage to color enable -- state dynamically for a command buffer -- -- = Description -- -- This command sets the @coverageToColorEnable@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'::@coverageToColorEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageToColorEnableNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageToColorEnableNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageToColorEnableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @coverageToColorEnable@ specifies the @coverageToColorEnable@ state. ("coverageToColorEnable" ::: Bool) -> io () cmdSetCoverageToColorEnableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetCoverageToColorEnableNV CommandBuffer commandBuffer Bool coverageToColorEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageToColorEnableNVPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageToColorEnableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetCoverageToColorEnableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageToColorEnableNVPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageToColorEnableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageToColorEnableNV' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetCoverageToColorEnableNV' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetCoverageToColorEnableNV FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageToColorEnableNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageToColorEnableNV" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetCoverageToColorEnableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool coverageToColorEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageToColorLocationNV :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO () -- | vkCmdSetCoverageToColorLocationNV - Specify the coverage to color -- location dynamically for a command buffer -- -- = Description -- -- This command sets the @coverageToColorLocation@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'::@coverageToColorLocation@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageToColorLocationNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageToColorLocationNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>, -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageToColorLocationNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @coverageToColorLocation@ specifies the @coverageToColorLocation@ state. ("coverageToColorLocation" ::: Word32) -> io () cmdSetCoverageToColorLocationNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> SampleMask -> io () cmdSetCoverageToColorLocationNV CommandBuffer commandBuffer SampleMask coverageToColorLocation = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageToColorLocationNVPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetCoverageToColorLocationNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) pVkCmdSetCoverageToColorLocationNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetCoverageToColorLocationNVPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageToColorLocationNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageToColorLocationNV' :: Ptr CommandBuffer_T -> SampleMask -> IO () vkCmdSetCoverageToColorLocationNV' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> IO () mkVkCmdSetCoverageToColorLocationNV FunPtr (Ptr CommandBuffer_T -> SampleMask -> IO ()) vkCmdSetCoverageToColorLocationNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageToColorLocationNV" (Ptr CommandBuffer_T -> SampleMask -> IO () vkCmdSetCoverageToColorLocationNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (SampleMask coverageToColorLocation)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageModulationModeNV :: FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO () -- | vkCmdSetCoverageModulationModeNV - Specify the coverage modulation mode -- dynamically for a command buffer -- -- = Description -- -- This command sets the @coverageModulationMode@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageModulationModeNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameter# -- @coverageModulationMode@ /must/ be a valid -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV' -- value -- -- - #VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageModulationModeNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV' cmdSetCoverageModulationModeNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @coverageModulationMode@ specifies the @coverageModulationMode@ state. CoverageModulationModeNV -> io () cmdSetCoverageModulationModeNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> CoverageModulationModeNV -> io () cmdSetCoverageModulationModeNV CommandBuffer commandBuffer CoverageModulationModeNV coverageModulationMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageModulationModeNVPtr :: FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) vkCmdSetCoverageModulationModeNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) pVkCmdSetCoverageModulationModeNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) vkCmdSetCoverageModulationModeNVPtr FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageModulationModeNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageModulationModeNV' :: Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO () vkCmdSetCoverageModulationModeNV' = FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO () mkVkCmdSetCoverageModulationModeNV FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) vkCmdSetCoverageModulationModeNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageModulationModeNV" (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO () vkCmdSetCoverageModulationModeNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (CoverageModulationModeNV coverageModulationMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageModulationTableEnableNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetCoverageModulationTableEnableNV - Specify the coverage -- modulation table enable state dynamically for a command buffer -- -- = Description -- -- This command sets the @coverageModulationTableEnable@ state for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationTableEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageModulationTableEnableNV-None-09423# At least -- one of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpool# -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageModulationTableEnableNV-videocoding# This -- command /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageModulationTableEnableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @coverageModulationTableEnable@ specifies the -- @coverageModulationTableEnable@ state. ("coverageModulationTableEnable" ::: Bool) -> io () cmdSetCoverageModulationTableEnableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetCoverageModulationTableEnableNV CommandBuffer commandBuffer Bool coverageModulationTableEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageModulationTableEnableNVPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageModulationTableEnableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetCoverageModulationTableEnableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageModulationTableEnableNVPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageModulationTableEnableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageModulationTableEnableNV' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetCoverageModulationTableEnableNV' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetCoverageModulationTableEnableNV FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetCoverageModulationTableEnableNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageModulationTableEnableNV" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetCoverageModulationTableEnableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool coverageModulationTableEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageModulationTableNV :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr CFloat -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr CFloat -> IO () -- | vkCmdSetCoverageModulationTableNV - Specify the coverage modulation -- table dynamically for a command buffer -- -- = Description -- -- This command sets the table of modulation factors for subsequent drawing -- commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationTableCount@, -- and -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@pCoverageModulationTable@ -- values used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageModulationTableNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameter# -- @pCoverageModulationTable@ /must/ be a valid pointer to an array of -- @coverageModulationTableCount@ @float@ values -- -- - #VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageModulationTableNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- - #VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylength# -- @coverageModulationTableCount@ /must/ be greater than @0@ -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>, -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageModulationTableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @pCoverageModulationTable@ specifies the table of modulation factors -- containing a value for each number of covered samples. ("coverageModulationTable" ::: Vector Float) -> io () cmdSetCoverageModulationTableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> io () cmdSetCoverageModulationTableNV CommandBuffer commandBuffer "coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float) coverageModulationTable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> (ContT () IO () -> IO ()) -> ContT () IO () -> io () forall b c a. (b -> c) -> (a -> b) -> a -> c . ContT () IO () -> IO () forall (m :: * -> *) r. Monad m => ContT r m r -> m r evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageModulationTableNVPtr :: FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) vkCmdSetCoverageModulationTableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) pVkCmdSetCoverageModulationTableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) vkCmdSetCoverageModulationTableNVPtr FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageModulationTableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageModulationTableNV' :: Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO () vkCmdSetCoverageModulationTableNV' = FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) -> Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO () mkVkCmdSetCoverageModulationTableNV FunPtr (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO ()) vkCmdSetCoverageModulationTableNVPtr Ptr CFloat pPCoverageModulationTable <- ((Ptr CFloat -> IO ()) -> IO ()) -> ContT () IO (Ptr CFloat) forall {k} (r :: k) (m :: k -> *) a. ((a -> m r) -> m r) -> ContT r m a ContT (((Ptr CFloat -> IO ()) -> IO ()) -> ContT () IO (Ptr CFloat)) -> ((Ptr CFloat -> IO ()) -> IO ()) -> ContT () IO (Ptr CFloat) forall a b. (a -> b) -> a -> b $ forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes @CFloat ((("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> Int forall a. Vector a -> Int Data.Vector.length ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float) coverageModulationTable)) Int -> Int -> Int forall a. Num a => a -> a -> a * Int 4) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ (Int -> ("extraPrimitiveOverestimationSize" ::: Float) -> IO ()) -> ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> IO () forall (m :: * -> *) a b. Monad m => (Int -> a -> m b) -> Vector a -> m () Data.Vector.imapM_ (\Int i "extraPrimitiveOverestimationSize" ::: Float e -> Ptr CFloat -> CFloat -> IO () forall a. Storable a => Ptr a -> a -> IO () poke (Ptr CFloat pPCoverageModulationTable Ptr CFloat -> Int -> Ptr CFloat forall a b. Ptr a -> Int -> Ptr b `plusPtr` (Int 4 Int -> Int -> Int forall a. Num a => a -> a -> a * (Int i)) :: Ptr CFloat) (("extraPrimitiveOverestimationSize" ::: Float) -> CFloat CFloat ("extraPrimitiveOverestimationSize" ::: Float e))) ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float) coverageModulationTable) IO () -> ContT () IO () forall (m :: * -> *) a. Monad m => m a -> ContT () m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO () forall a b. (a -> b) -> a -> b $ String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageModulationTableNV" (Ptr CommandBuffer_T -> SampleMask -> Ptr CFloat -> IO () vkCmdSetCoverageModulationTableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) ((Int -> SampleMask forall a b. (Integral a, Num b) => a -> b fromIntegral (("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> Int forall a. Vector a -> Int Data.Vector.length (("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> Int) -> ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float)) -> Int forall a b. (a -> b) -> a -> b $ ("coverageModulationTable" ::: Vector ("extraPrimitiveOverestimationSize" ::: Float) coverageModulationTable)) :: Word32)) (Ptr CFloat pPCoverageModulationTable)) () -> ContT () IO () forall a. a -> ContT () IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> ContT () IO ()) -> () -> ContT () IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetShadingRateImageEnableNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetShadingRateImageEnableNV - Specify the shading rate image enable -- state dynamically for a command buffer -- -- = Description -- -- This command sets the @shadingRateImageEnable@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@shadingRateImageEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetShadingRateImageEnableNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetShadingRateImageEnableNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetShadingRateImageEnableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @shadingRateImageEnable@ specifies the @shadingRateImageEnable@ state. ("shadingRateImageEnable" ::: Bool) -> io () cmdSetShadingRateImageEnableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetShadingRateImageEnableNV CommandBuffer commandBuffer Bool shadingRateImageEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetShadingRateImageEnableNVPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetShadingRateImageEnableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetShadingRateImageEnableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetShadingRateImageEnableNVPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetShadingRateImageEnableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetShadingRateImageEnableNV' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetShadingRateImageEnableNV' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetShadingRateImageEnableNV FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetShadingRateImageEnableNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetShadingRateImageEnableNV" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetShadingRateImageEnableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool shadingRateImageEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetCoverageReductionModeNV :: FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO () -- | vkCmdSetCoverageReductionModeNV - Specify the coverage reduction mode -- dynamically for a command buffer -- -- = Description -- -- This command sets the @coverageReductionMode@ state for subsequent -- drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetCoverageReductionModeNV-None-09423# At least one of -- the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameter# -- @coverageReductionMode@ /must/ be a valid -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV' -- value -- -- - #VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetCoverageReductionModeNV-videocoding# This command -- /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV' cmdSetCoverageReductionModeNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @coverageReductionMode@ specifies the @coverageReductionMode@ state. CoverageReductionModeNV -> io () cmdSetCoverageReductionModeNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> CoverageReductionModeNV -> io () cmdSetCoverageReductionModeNV CommandBuffer commandBuffer CoverageReductionModeNV coverageReductionMode = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetCoverageReductionModeNVPtr :: FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) vkCmdSetCoverageReductionModeNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) pVkCmdSetCoverageReductionModeNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) vkCmdSetCoverageReductionModeNVPtr FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetCoverageReductionModeNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetCoverageReductionModeNV' :: Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO () vkCmdSetCoverageReductionModeNV' = FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO () mkVkCmdSetCoverageReductionModeNV FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) vkCmdSetCoverageReductionModeNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetCoverageReductionModeNV" (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO () vkCmdSetCoverageReductionModeNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (CoverageReductionModeNV coverageReductionMode)) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "dynamic" mkVkCmdSetRepresentativeFragmentTestEnableNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () -- | vkCmdSetRepresentativeFragmentTestEnableNV - Specify the representative -- fragment test enable dynamically for a command buffer -- -- = Description -- -- This command sets the @representativeFragmentTestEnable@ state for -- subsequent drawing commands when drawing using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>, -- or when the graphics pipeline is created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'::@representativeFragmentTestEnable@ -- value used to create the currently active pipeline. -- -- == Valid Usage -- -- - #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-09423# At -- least one of the following /must/ be true: -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable> -- feature is enabled -- -- - The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject> -- feature is enabled -- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter# -- @commandBuffer@ /must/ be a valid -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recording# -- @commandBuffer@ /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpool# -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations -- -- - #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocoding# This -- command /must/ only be called outside of a video coding scope -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that -- @commandBuffer@ was allocated from /must/ be externally synchronized -- -- == Command Properties -- -- \' -- -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Graphics | State | -- | Secondary | | | | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetRepresentativeFragmentTestEnableNV :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @representativeFragmentTestEnable@ specifies the -- @representativeFragmentTestEnable@ state. ("representativeFragmentTestEnable" ::: Bool) -> io () cmdSetRepresentativeFragmentTestEnableNV :: forall (io :: * -> *). MonadIO io => CommandBuffer -> Bool -> io () cmdSetRepresentativeFragmentTestEnableNV CommandBuffer commandBuffer Bool representativeFragmentTestEnable = IO () -> io () forall a. IO a -> io a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> io ()) -> IO () -> io () forall a b. (a -> b) -> a -> b $ do let vkCmdSetRepresentativeFragmentTestEnableNVPtr :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetRepresentativeFragmentTestEnableNVPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) pVkCmdSetRepresentativeFragmentTestEnableNV (case CommandBuffer commandBuffer of CommandBuffer{DeviceCmds $sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds deviceCmds :: DeviceCmds deviceCmds} -> DeviceCmds deviceCmds) Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () unless (FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetRepresentativeFragmentTestEnableNVPtr FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Bool forall a. Eq a => a -> a -> Bool /= FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) forall a. FunPtr a nullFunPtr) (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ IOException -> IO () forall e a. Exception e => e -> IO a throwIO (IOException -> IO ()) -> IOException -> IO () forall a b. (a -> b) -> a -> b $ Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe String -> IOException IOError Maybe Handle forall a. Maybe a Nothing IOErrorType InvalidArgument String "" String "The function pointer for vkCmdSetRepresentativeFragmentTestEnableNV is null" Maybe CInt forall a. Maybe a Nothing Maybe String forall a. Maybe a Nothing let vkCmdSetRepresentativeFragmentTestEnableNV' :: Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetRepresentativeFragmentTestEnableNV' = FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () mkVkCmdSetRepresentativeFragmentTestEnableNV FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) vkCmdSetRepresentativeFragmentTestEnableNVPtr String -> IO () -> IO () forall a. String -> IO a -> IO a traceAroundEvent String "vkCmdSetRepresentativeFragmentTestEnableNV" (Ptr CommandBuffer_T -> Bool32 -> IO () vkCmdSetRepresentativeFragmentTestEnableNV' (CommandBuffer -> Ptr CommandBuffer_T commandBufferHandle (CommandBuffer commandBuffer)) (Bool -> Bool32 boolToBool32 (Bool representativeFragmentTestEnable))) () -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (() -> IO ()) -> () -> IO () forall a b. (a -> b) -> a -> b $ () -- | VkPhysicalDeviceExtendedDynamicState3FeaturesEXT - Structure describing -- what extended dynamic state is supported by the implementation -- -- = Members -- -- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceExtendedDynamicState3FeaturesEXT' structure is -- included in the @pNext@ chain of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2' -- structure passed to -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2', -- it is filled in to indicate whether each corresponding feature is -- supported. 'PhysicalDeviceExtendedDynamicState3FeaturesEXT' /can/ also -- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' -- to selectively enable these features. -- -- == Valid Usage (Implicit) -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceExtendedDynamicState3FeaturesEXT = PhysicalDeviceExtendedDynamicState3FeaturesEXT { -- | #features-extendedDynamicState3TessellationDomainOrigin# -- @extendedDynamicState3TessellationDomainOrigin@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3TessellationDomainOrigin :: Bool , -- | #features-extendedDynamicState3DepthClampEnable# -- @extendedDynamicState3DepthClampEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3DepthClampEnable :: Bool , -- | #features-extendedDynamicState3PolygonMode# -- @extendedDynamicState3PolygonMode@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3PolygonMode :: Bool , -- | #features-extendedDynamicState3RasterizationSamples# -- @extendedDynamicState3RasterizationSamples@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3RasterizationSamples :: Bool , -- | #features-extendedDynamicState3SampleMask# -- @extendedDynamicState3SampleMask@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3SampleMask :: Bool , -- | #features-extendedDynamicState3AlphaToCoverageEnable# -- @extendedDynamicState3AlphaToCoverageEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3AlphaToCoverageEnable :: Bool , -- | #features-extendedDynamicState3AlphaToOneEnable# -- @extendedDynamicState3AlphaToOneEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3AlphaToOneEnable :: Bool , -- | #features-extendedDynamicState3LogicOpEnable# -- @extendedDynamicState3LogicOpEnable@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3LogicOpEnable :: Bool , -- | #features-extendedDynamicState3ColorBlendEnable# -- @extendedDynamicState3ColorBlendEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ColorBlendEnable :: Bool , -- | #features-extendedDynamicState3ColorBlendEquation# -- @extendedDynamicState3ColorBlendEquation@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ColorBlendEquation :: Bool , -- | #features-extendedDynamicState3ColorWriteMask# -- @extendedDynamicState3ColorWriteMask@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ColorWriteMask :: Bool , -- | #features-extendedDynamicState3RasterizationStream# -- @extendedDynamicState3RasterizationStream@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3RasterizationStream :: Bool , -- | #features-extendedDynamicState3ConservativeRasterizationMode# -- @extendedDynamicState3ConservativeRasterizationMode@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ConservativeRasterizationMode :: Bool , -- | #features-extendedDynamicState3ExtraPrimitiveOverestimationSize# -- @extendedDynamicState3ExtraPrimitiveOverestimationSize@ indicates that -- the implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ExtraPrimitiveOverestimationSize :: Bool , -- | #features-extendedDynamicState3DepthClipEnable# -- @extendedDynamicState3DepthClipEnable@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3DepthClipEnable :: Bool , -- | #features-extendedDynamicState3SampleLocationsEnable# -- @extendedDynamicState3SampleLocationsEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3SampleLocationsEnable :: Bool , -- | #features-extendedDynamicState3ColorBlendAdvanced# -- @extendedDynamicState3ColorBlendAdvanced@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ColorBlendAdvanced :: Bool , -- | #features-extendedDynamicState3ProvokingVertexMode# -- @extendedDynamicState3ProvokingVertexMode@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ProvokingVertexMode :: Bool , -- | #features-extendedDynamicState3LineRasterizationMode# -- @extendedDynamicState3LineRasterizationMode@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3LineRasterizationMode :: Bool , -- | #features-extendedDynamicState3LineStippleEnable# -- @extendedDynamicState3LineStippleEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3LineStippleEnable :: Bool , -- | #features-extendedDynamicState3DepthClipNegativeOneToOne# -- @extendedDynamicState3DepthClipNegativeOneToOne@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3DepthClipNegativeOneToOne :: Bool , -- | #features-extendedDynamicState3ViewportWScalingEnable# -- @extendedDynamicState3ViewportWScalingEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ViewportWScalingEnable :: Bool , -- | #features-extendedDynamicState3ViewportSwizzle# -- @extendedDynamicState3ViewportSwizzle@ indicates that the implementation -- supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ViewportSwizzle :: Bool , -- | #features-extendedDynamicState3CoverageToColorEnable# -- @extendedDynamicState3CoverageToColorEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageToColorEnable :: Bool , -- | #features-extendedDynamicState3CoverageToColorLocation# -- @extendedDynamicState3CoverageToColorLocation@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageToColorLocation :: Bool , -- | #features-extendedDynamicState3CoverageModulationMode# -- @extendedDynamicState3CoverageModulationMode@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageModulationMode :: Bool , -- | #features-extendedDynamicState3CoverageModulationTableEnable# -- @extendedDynamicState3CoverageModulationTableEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageModulationTableEnable :: Bool , -- | #features-extendedDynamicState3CoverageModulationTable# -- @extendedDynamicState3CoverageModulationTable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageModulationTable :: Bool , -- | #features-extendedDynamicState3CoverageReductionMode# -- @extendedDynamicState3CoverageReductionMode@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3CoverageReductionMode :: Bool , -- | #features-extendedDynamicState3RepresentativeFragmentTestEnable# -- @extendedDynamicState3RepresentativeFragmentTestEnable@ indicates that -- the implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3RepresentativeFragmentTestEnable :: Bool , -- | #features-extendedDynamicState3ShadingRateImageEnable# -- @extendedDynamicState3ShadingRateImageEnable@ indicates that the -- implementation supports the following dynamic state: -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3ShadingRateImageEnable :: Bool } deriving (Typeable, PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool (PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool) -> (PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool) -> Eq PhysicalDeviceExtendedDynamicState3FeaturesEXT forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool == :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $c/= :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool /= :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool Eq) #if defined(GENERIC_INSTANCES) deriving instance Generic (PhysicalDeviceExtendedDynamicState3FeaturesEXT) #endif deriving instance Show PhysicalDeviceExtendedDynamicState3FeaturesEXT instance ToCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT where withCStruct :: forall b. PhysicalDeviceExtendedDynamicState3FeaturesEXT -> (Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b) -> IO b withCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT x Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b f = Int -> (Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b) -> IO b forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes Int 144 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b) -> IO b) -> (Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b) -> IO b forall a b. (a -> b) -> a -> b $ \Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p -> Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b -> IO b forall b. Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p PhysicalDeviceExtendedDynamicState3FeaturesEXT x (Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b f Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p) pokeCStruct :: forall b. Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p PhysicalDeviceExtendedDynamicState3FeaturesEXT{Bool $sel:extendedDynamicState3TessellationDomainOrigin:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3DepthClampEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3PolygonMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3RasterizationSamples:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3SampleMask:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3AlphaToCoverageEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3AlphaToOneEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3LogicOpEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ColorBlendEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ColorBlendEquation:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ColorWriteMask:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3RasterizationStream:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ConservativeRasterizationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ExtraPrimitiveOverestimationSize:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3DepthClipEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3SampleLocationsEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ColorBlendAdvanced:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ProvokingVertexMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3LineRasterizationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3LineStippleEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3DepthClipNegativeOneToOne:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ViewportWScalingEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ViewportSwizzle:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageToColorEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageToColorLocation:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageModulationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageModulationTableEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageModulationTable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3CoverageReductionMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3RepresentativeFragmentTestEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool $sel:extendedDynamicState3ShadingRateImageEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Bool extendedDynamicState3TessellationDomainOrigin :: Bool extendedDynamicState3DepthClampEnable :: Bool extendedDynamicState3PolygonMode :: Bool extendedDynamicState3RasterizationSamples :: Bool extendedDynamicState3SampleMask :: Bool extendedDynamicState3AlphaToCoverageEnable :: Bool extendedDynamicState3AlphaToOneEnable :: Bool extendedDynamicState3LogicOpEnable :: Bool extendedDynamicState3ColorBlendEnable :: Bool extendedDynamicState3ColorBlendEquation :: Bool extendedDynamicState3ColorWriteMask :: Bool extendedDynamicState3RasterizationStream :: Bool extendedDynamicState3ConservativeRasterizationMode :: Bool extendedDynamicState3ExtraPrimitiveOverestimationSize :: Bool extendedDynamicState3DepthClipEnable :: Bool extendedDynamicState3SampleLocationsEnable :: Bool extendedDynamicState3ColorBlendAdvanced :: Bool extendedDynamicState3ProvokingVertexMode :: Bool extendedDynamicState3LineRasterizationMode :: Bool extendedDynamicState3LineStippleEnable :: Bool extendedDynamicState3DepthClipNegativeOneToOne :: Bool extendedDynamicState3ViewportWScalingEnable :: Bool extendedDynamicState3ViewportSwizzle :: Bool extendedDynamicState3CoverageToColorEnable :: Bool extendedDynamicState3CoverageToColorLocation :: Bool extendedDynamicState3CoverageModulationMode :: Bool extendedDynamicState3CoverageModulationTableEnable :: Bool extendedDynamicState3CoverageModulationTable :: Bool extendedDynamicState3CoverageReductionMode :: Bool extendedDynamicState3RepresentativeFragmentTestEnable :: Bool extendedDynamicState3ShadingRateImageEnable :: Bool ..} IO b f = do Ptr StructureType -> StructureType -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr StructureType forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr StructureType)) (StructureType STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) Ptr (Ptr ()) -> Ptr () -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr (Ptr ()) forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr (Ptr ()))) (Ptr () forall a. Ptr a nullPtr) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3TessellationDomainOrigin)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3DepthClampEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 24 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3PolygonMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 28 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3RasterizationSamples)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 32 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3SampleMask)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 36 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3AlphaToCoverageEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 40 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3AlphaToOneEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 44 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3LogicOpEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 48 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ColorBlendEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 52 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ColorBlendEquation)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 56 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ColorWriteMask)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 60 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3RasterizationStream)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 64 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ConservativeRasterizationMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 68 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ExtraPrimitiveOverestimationSize)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 72 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3DepthClipEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 76 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3SampleLocationsEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 80 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ColorBlendAdvanced)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 84 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ProvokingVertexMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 88 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3LineRasterizationMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 92 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3LineStippleEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 96 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3DepthClipNegativeOneToOne)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 100 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ViewportWScalingEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 104 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ViewportSwizzle)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 108 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageToColorEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 112 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageToColorLocation)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 116 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageModulationMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 120 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageModulationTableEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 124 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageModulationTable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 128 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3CoverageReductionMode)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 132 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3RepresentativeFragmentTestEnable)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 136 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool extendedDynamicState3ShadingRateImageEnable)) IO b f cStructSize :: Int cStructSize = Int 144 cStructAlignment :: Int cStructAlignment = Int 8 pokeZeroCStruct :: forall b. Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b -> IO b pokeZeroCStruct Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p IO b f = do Ptr StructureType -> StructureType -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr StructureType forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr StructureType)) (StructureType STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT) Ptr (Ptr ()) -> Ptr () -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr (Ptr ()) forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr (Ptr ()))) (Ptr () forall a. Ptr a nullPtr) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 24 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 28 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 32 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 36 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 40 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 44 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 48 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 52 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 56 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 60 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 64 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 68 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 72 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 76 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 80 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 84 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 88 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 92 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 96 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 100 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 104 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 108 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 112 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 116 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 120 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 124 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 128 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 132 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 136 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) IO b f instance FromCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT where peekCStruct :: Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT peekCStruct Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p = do Bool32 extendedDynamicState3TessellationDomainOrigin <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) Bool32 extendedDynamicState3DepthClampEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr Bool32)) Bool32 extendedDynamicState3PolygonMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 24 :: Ptr Bool32)) Bool32 extendedDynamicState3RasterizationSamples <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 28 :: Ptr Bool32)) Bool32 extendedDynamicState3SampleMask <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 32 :: Ptr Bool32)) Bool32 extendedDynamicState3AlphaToCoverageEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 36 :: Ptr Bool32)) Bool32 extendedDynamicState3AlphaToOneEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 40 :: Ptr Bool32)) Bool32 extendedDynamicState3LogicOpEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 44 :: Ptr Bool32)) Bool32 extendedDynamicState3ColorBlendEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 48 :: Ptr Bool32)) Bool32 extendedDynamicState3ColorBlendEquation <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 52 :: Ptr Bool32)) Bool32 extendedDynamicState3ColorWriteMask <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 56 :: Ptr Bool32)) Bool32 extendedDynamicState3RasterizationStream <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 60 :: Ptr Bool32)) Bool32 extendedDynamicState3ConservativeRasterizationMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 64 :: Ptr Bool32)) Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 68 :: Ptr Bool32)) Bool32 extendedDynamicState3DepthClipEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 72 :: Ptr Bool32)) Bool32 extendedDynamicState3SampleLocationsEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 76 :: Ptr Bool32)) Bool32 extendedDynamicState3ColorBlendAdvanced <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 80 :: Ptr Bool32)) Bool32 extendedDynamicState3ProvokingVertexMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 84 :: Ptr Bool32)) Bool32 extendedDynamicState3LineRasterizationMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 88 :: Ptr Bool32)) Bool32 extendedDynamicState3LineStippleEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 92 :: Ptr Bool32)) Bool32 extendedDynamicState3DepthClipNegativeOneToOne <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 96 :: Ptr Bool32)) Bool32 extendedDynamicState3ViewportWScalingEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 100 :: Ptr Bool32)) Bool32 extendedDynamicState3ViewportSwizzle <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 104 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageToColorEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 108 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageToColorLocation <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 112 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageModulationMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 116 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageModulationTableEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 120 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageModulationTable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 124 :: Ptr Bool32)) Bool32 extendedDynamicState3CoverageReductionMode <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 128 :: Ptr Bool32)) Bool32 extendedDynamicState3RepresentativeFragmentTestEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 132 :: Ptr Bool32)) Bool32 extendedDynamicState3ShadingRateImageEnable <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT p Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 136 :: Ptr Bool32)) PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT) -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT forall a b. (a -> b) -> a -> b $ Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PhysicalDeviceExtendedDynamicState3FeaturesEXT PhysicalDeviceExtendedDynamicState3FeaturesEXT (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3TessellationDomainOrigin) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3DepthClampEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3PolygonMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3RasterizationSamples) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3SampleMask) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3AlphaToCoverageEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3AlphaToOneEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3LogicOpEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ColorBlendEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ColorBlendEquation) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ColorWriteMask) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3RasterizationStream) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ConservativeRasterizationMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3DepthClipEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3SampleLocationsEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ColorBlendAdvanced) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ProvokingVertexMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3LineRasterizationMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3LineStippleEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3DepthClipNegativeOneToOne) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ViewportWScalingEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ViewportSwizzle) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageToColorEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageToColorLocation) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageModulationMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageModulationTableEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageModulationTable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3CoverageReductionMode) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3RepresentativeFragmentTestEnable) (Bool32 -> Bool bool32ToBool Bool32 extendedDynamicState3ShadingRateImageEnable) instance Storable PhysicalDeviceExtendedDynamicState3FeaturesEXT where sizeOf :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int sizeOf ~PhysicalDeviceExtendedDynamicState3FeaturesEXT _ = Int 144 alignment :: PhysicalDeviceExtendedDynamicState3FeaturesEXT -> Int alignment ~PhysicalDeviceExtendedDynamicState3FeaturesEXT _ = Int 8 peek :: Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT peek = Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO PhysicalDeviceExtendedDynamicState3FeaturesEXT forall a. FromCStruct a => Ptr a -> IO a peekCStruct poke :: Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO () poke Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT poked = Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO () -> IO () forall b. Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT -> PhysicalDeviceExtendedDynamicState3FeaturesEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT ptr PhysicalDeviceExtendedDynamicState3FeaturesEXT poked (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ()) instance Zero PhysicalDeviceExtendedDynamicState3FeaturesEXT where zero :: PhysicalDeviceExtendedDynamicState3FeaturesEXT zero = Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PhysicalDeviceExtendedDynamicState3FeaturesEXT PhysicalDeviceExtendedDynamicState3FeaturesEXT Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero -- | VkPhysicalDeviceExtendedDynamicState3PropertiesEXT - Structure -- describing capabilities of extended dynamic state -- -- = Description -- -- If the 'PhysicalDeviceExtendedDynamicState3PropertiesEXT' structure is -- included in the @pNext@ chain of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2' -- structure passed to -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2', -- it is filled in with each corresponding implementation-dependent -- property. -- -- == Valid Usage (Implicit) -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceExtendedDynamicState3PropertiesEXT = PhysicalDeviceExtendedDynamicState3PropertiesEXT { -- | #limits-dynamicPrimitiveTopologyUnrestricted# -- @dynamicPrimitiveTopologyUnrestricted@ indicates that the implementation -- allows -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' -- to use a different -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-class primitive topology class> -- to the one specified in the active graphics pipeline. PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool dynamicPrimitiveTopologyUnrestricted :: Bool } deriving (Typeable, PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool (PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool) -> (PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool) -> Eq PhysicalDeviceExtendedDynamicState3PropertiesEXT forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool == :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool $c/= :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool /= :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool Eq) #if defined(GENERIC_INSTANCES) deriving instance Generic (PhysicalDeviceExtendedDynamicState3PropertiesEXT) #endif deriving instance Show PhysicalDeviceExtendedDynamicState3PropertiesEXT instance ToCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT where withCStruct :: forall b. PhysicalDeviceExtendedDynamicState3PropertiesEXT -> (Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b) -> IO b withCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT x Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b f = Int -> (Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b) -> IO b forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes Int 24 ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b) -> IO b) -> (Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b) -> IO b forall a b. (a -> b) -> a -> b $ \Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p -> Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b -> IO b forall b. Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p PhysicalDeviceExtendedDynamicState3PropertiesEXT x (Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b f Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p) pokeCStruct :: forall b. Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p PhysicalDeviceExtendedDynamicState3PropertiesEXT{Bool $sel:dynamicPrimitiveTopologyUnrestricted:PhysicalDeviceExtendedDynamicState3PropertiesEXT :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Bool dynamicPrimitiveTopologyUnrestricted :: Bool ..} IO b f = do Ptr StructureType -> StructureType -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr StructureType forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr StructureType)) (StructureType STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT) Ptr (Ptr ()) -> Ptr () -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr (Ptr ()) forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr (Ptr ()))) (Ptr () forall a. Ptr a nullPtr) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool dynamicPrimitiveTopologyUnrestricted)) IO b f cStructSize :: Int cStructSize = Int 24 cStructAlignment :: Int cStructAlignment = Int 8 pokeZeroCStruct :: forall b. Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b -> IO b pokeZeroCStruct Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p IO b f = do Ptr StructureType -> StructureType -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr StructureType forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr StructureType)) (StructureType STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT) Ptr (Ptr ()) -> Ptr () -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr (Ptr ()) forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr (Ptr ()))) (Ptr () forall a. Ptr a nullPtr) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) IO b f instance FromCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT where peekCStruct :: Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT peekCStruct Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p = do Bool32 dynamicPrimitiveTopologyUnrestricted <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT p Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT) -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT forall a b. (a -> b) -> a -> b $ Bool -> PhysicalDeviceExtendedDynamicState3PropertiesEXT PhysicalDeviceExtendedDynamicState3PropertiesEXT (Bool32 -> Bool bool32ToBool Bool32 dynamicPrimitiveTopologyUnrestricted) instance Storable PhysicalDeviceExtendedDynamicState3PropertiesEXT where sizeOf :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int sizeOf ~PhysicalDeviceExtendedDynamicState3PropertiesEXT _ = Int 24 alignment :: PhysicalDeviceExtendedDynamicState3PropertiesEXT -> Int alignment ~PhysicalDeviceExtendedDynamicState3PropertiesEXT _ = Int 8 peek :: Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT peek = Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO PhysicalDeviceExtendedDynamicState3PropertiesEXT forall a. FromCStruct a => Ptr a -> IO a peekCStruct poke :: Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO () poke Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT poked = Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO () -> IO () forall b. Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT -> PhysicalDeviceExtendedDynamicState3PropertiesEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT ptr PhysicalDeviceExtendedDynamicState3PropertiesEXT poked (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ()) instance Zero PhysicalDeviceExtendedDynamicState3PropertiesEXT where zero :: PhysicalDeviceExtendedDynamicState3PropertiesEXT zero = Bool -> PhysicalDeviceExtendedDynamicState3PropertiesEXT PhysicalDeviceExtendedDynamicState3PropertiesEXT Bool forall a. Zero a => a zero -- | VkColorBlendEquationEXT - Structure specifying the color blend factors -- and operations for an attachment -- -- == Valid Usage -- -- - #VUID-VkColorBlendEquationEXT-dualSrcBlend-07357# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend> -- feature is not enabled, @srcColorBlendFactor@ /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' -- -- - #VUID-VkColorBlendEquationEXT-dualSrcBlend-07358# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend> -- feature is not enabled, @dstColorBlendFactor@ /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' -- -- - #VUID-VkColorBlendEquationEXT-dualSrcBlend-07359# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend> -- feature is not enabled, @srcAlphaBlendFactor@ /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' -- -- - #VUID-VkColorBlendEquationEXT-dualSrcBlend-07360# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend> -- feature is not enabled, @dstAlphaBlendFactor@ /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR', -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' -- -- - #VUID-VkColorBlendEquationEXT-colorBlendOp-07361# @colorBlendOp@ and -- @alphaBlendOp@ /must/ not be -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MULTIPLY_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SCREEN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_OVERLAY_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DARKEN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LIGHTEN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_COLORDODGE_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_COLORBURN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDLIGHT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SOFTLIGHT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DIFFERENCE_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_EXCLUSION_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HSL_HUE_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HSL_SATURATION_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HSL_COLOR_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HSL_LUMINOSITY_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT', -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or -- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT' -- -- - #VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362# -- If the @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@ -- /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA' -- -- - #VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363# -- If the @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@ -- /must/ not be -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA' -- -- == Valid Usage (Implicit) -- -- - #VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter# -- @srcColorBlendFactor@ /must/ be a valid -- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value -- -- - #VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter# -- @dstColorBlendFactor@ /must/ be a valid -- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value -- -- - #VUID-VkColorBlendEquationEXT-colorBlendOp-parameter# @colorBlendOp@ -- /must/ be a valid 'Vulkan.Core10.Enums.BlendOp.BlendOp' value -- -- - #VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter# -- @srcAlphaBlendFactor@ /must/ be a valid -- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value -- -- - #VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter# -- @dstAlphaBlendFactor@ /must/ be a valid -- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value -- -- - #VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter# @alphaBlendOp@ -- /must/ be a valid 'Vulkan.Core10.Enums.BlendOp.BlendOp' value -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor', -- 'Vulkan.Core10.Enums.BlendOp.BlendOp', 'cmdSetColorBlendEquationEXT' data ColorBlendEquationEXT = ColorBlendEquationEXT { -- | @srcColorBlendFactor@ selects which blend factor is used to determine -- the source factors (Sr,Sg,Sb). ColorBlendEquationEXT -> BlendFactor srcColorBlendFactor :: BlendFactor , -- | @dstColorBlendFactor@ selects which blend factor is used to determine -- the destination factors (Dr,Dg,Db). ColorBlendEquationEXT -> BlendFactor dstColorBlendFactor :: BlendFactor , -- | @colorBlendOp@ selects which blend operation is used to calculate the -- RGB values to write to the color attachment. ColorBlendEquationEXT -> BlendOp colorBlendOp :: BlendOp , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine -- the source factor Sa. ColorBlendEquationEXT -> BlendFactor srcAlphaBlendFactor :: BlendFactor , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine -- the destination factor Da. ColorBlendEquationEXT -> BlendFactor dstAlphaBlendFactor :: BlendFactor , -- | @alphaBlendOp@ selects which blend operation is use to calculate the -- alpha values to write to the color attachment. ColorBlendEquationEXT -> BlendOp alphaBlendOp :: BlendOp } deriving (Typeable, ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool (ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool) -> (ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool) -> Eq ColorBlendEquationEXT forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool == :: ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool $c/= :: ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool /= :: ColorBlendEquationEXT -> ColorBlendEquationEXT -> Bool Eq) #if defined(GENERIC_INSTANCES) deriving instance Generic (ColorBlendEquationEXT) #endif deriving instance Show ColorBlendEquationEXT instance ToCStruct ColorBlendEquationEXT where withCStruct :: forall b. ColorBlendEquationEXT -> (Ptr ColorBlendEquationEXT -> IO b) -> IO b withCStruct ColorBlendEquationEXT x Ptr ColorBlendEquationEXT -> IO b f = Int -> (Ptr ColorBlendEquationEXT -> IO b) -> IO b forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes Int 24 ((Ptr ColorBlendEquationEXT -> IO b) -> IO b) -> (Ptr ColorBlendEquationEXT -> IO b) -> IO b forall a b. (a -> b) -> a -> b $ \Ptr ColorBlendEquationEXT p -> Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO b -> IO b forall b. Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr ColorBlendEquationEXT p ColorBlendEquationEXT x (Ptr ColorBlendEquationEXT -> IO b f Ptr ColorBlendEquationEXT p) pokeCStruct :: forall b. Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO b -> IO b pokeCStruct Ptr ColorBlendEquationEXT p ColorBlendEquationEXT{BlendOp BlendFactor $sel:srcColorBlendFactor:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendFactor $sel:dstColorBlendFactor:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendFactor $sel:colorBlendOp:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendOp $sel:srcAlphaBlendFactor:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendFactor $sel:dstAlphaBlendFactor:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendFactor $sel:alphaBlendOp:ColorBlendEquationEXT :: ColorBlendEquationEXT -> BlendOp srcColorBlendFactor :: BlendFactor dstColorBlendFactor :: BlendFactor colorBlendOp :: BlendOp srcAlphaBlendFactor :: BlendFactor dstAlphaBlendFactor :: BlendFactor alphaBlendOp :: BlendOp ..} IO b f = do Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendFactor)) (BlendFactor srcColorBlendFactor) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr BlendFactor)) (BlendFactor dstColorBlendFactor) Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr BlendOp)) (BlendOp colorBlendOp) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendFactor)) (BlendFactor srcAlphaBlendFactor) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr BlendFactor)) (BlendFactor dstAlphaBlendFactor) Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr BlendOp)) (BlendOp alphaBlendOp) IO b f cStructSize :: Int cStructSize = Int 24 cStructAlignment :: Int cStructAlignment = Int 4 pokeZeroCStruct :: forall b. Ptr ColorBlendEquationEXT -> IO b -> IO b pokeZeroCStruct Ptr ColorBlendEquationEXT p IO b f = do Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendFactor)) (BlendFactor forall a. Zero a => a zero) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr BlendFactor)) (BlendFactor forall a. Zero a => a zero) Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr BlendOp)) (BlendOp forall a. Zero a => a zero) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendFactor)) (BlendFactor forall a. Zero a => a zero) Ptr BlendFactor -> BlendFactor -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr BlendFactor)) (BlendFactor forall a. Zero a => a zero) Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr BlendOp)) (BlendOp forall a. Zero a => a zero) IO b f instance FromCStruct ColorBlendEquationEXT where peekCStruct :: Ptr ColorBlendEquationEXT -> IO ColorBlendEquationEXT peekCStruct Ptr ColorBlendEquationEXT p = do BlendFactor srcColorBlendFactor <- forall a. Storable a => Ptr a -> IO a peek @BlendFactor ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendFactor)) BlendFactor dstColorBlendFactor <- forall a. Storable a => Ptr a -> IO a peek @BlendFactor ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr BlendFactor)) BlendOp colorBlendOp <- forall a. Storable a => Ptr a -> IO a peek @BlendOp ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr BlendOp)) BlendFactor srcAlphaBlendFactor <- forall a. Storable a => Ptr a -> IO a peek @BlendFactor ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendFactor)) BlendFactor dstAlphaBlendFactor <- forall a. Storable a => Ptr a -> IO a peek @BlendFactor ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendFactor forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr BlendFactor)) BlendOp alphaBlendOp <- forall a. Storable a => Ptr a -> IO a peek @BlendOp ((Ptr ColorBlendEquationEXT p Ptr ColorBlendEquationEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 20 :: Ptr BlendOp)) ColorBlendEquationEXT -> IO ColorBlendEquationEXT forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (ColorBlendEquationEXT -> IO ColorBlendEquationEXT) -> ColorBlendEquationEXT -> IO ColorBlendEquationEXT forall a b. (a -> b) -> a -> b $ BlendFactor -> BlendFactor -> BlendOp -> BlendFactor -> BlendFactor -> BlendOp -> ColorBlendEquationEXT ColorBlendEquationEXT BlendFactor srcColorBlendFactor BlendFactor dstColorBlendFactor BlendOp colorBlendOp BlendFactor srcAlphaBlendFactor BlendFactor dstAlphaBlendFactor BlendOp alphaBlendOp instance Storable ColorBlendEquationEXT where sizeOf :: ColorBlendEquationEXT -> Int sizeOf ~ColorBlendEquationEXT _ = Int 24 alignment :: ColorBlendEquationEXT -> Int alignment ~ColorBlendEquationEXT _ = Int 4 peek :: Ptr ColorBlendEquationEXT -> IO ColorBlendEquationEXT peek = Ptr ColorBlendEquationEXT -> IO ColorBlendEquationEXT forall a. FromCStruct a => Ptr a -> IO a peekCStruct poke :: Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO () poke Ptr ColorBlendEquationEXT ptr ColorBlendEquationEXT poked = Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO () -> IO () forall b. Ptr ColorBlendEquationEXT -> ColorBlendEquationEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr ColorBlendEquationEXT ptr ColorBlendEquationEXT poked (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ()) instance Zero ColorBlendEquationEXT where zero :: ColorBlendEquationEXT zero = BlendFactor -> BlendFactor -> BlendOp -> BlendFactor -> BlendFactor -> BlendOp -> ColorBlendEquationEXT ColorBlendEquationEXT BlendFactor forall a. Zero a => a zero BlendFactor forall a. Zero a => a zero BlendOp forall a. Zero a => a zero BlendFactor forall a. Zero a => a zero BlendFactor forall a. Zero a => a zero BlendOp forall a. Zero a => a zero -- | VkColorBlendAdvancedEXT - Structure specifying the advanced blend -- operation parameters for an attachment -- -- == Valid Usage -- -- - #VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color> -- property is not supported, @srcPremultiplied@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color> -- property is not supported, @dstPremultiplied@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-VkColorBlendAdvancedEXT-blendOverlap-07507# If the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap> -- property is not supported, @blendOverlap@ /must/ be -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BLEND_OVERLAP_UNCORRELATED_EXT' -- -- == Valid Usage (Implicit) -- -- - #VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameter# -- @advancedBlendOp@ /must/ be a valid -- 'Vulkan.Core10.Enums.BlendOp.BlendOp' value -- -- - #VUID-VkColorBlendAdvancedEXT-blendOverlap-parameter# @blendOverlap@ -- /must/ be a valid -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT' -- value -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>, -- 'Vulkan.Core10.Enums.BlendOp.BlendOp', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT', -- 'Vulkan.Core10.FundamentalTypes.Bool32', 'cmdSetColorBlendAdvancedEXT' data ColorBlendAdvancedEXT = ColorBlendAdvancedEXT { -- | @advancedBlendOp@ selects which blend operation is used to calculate the -- RGB values to write to the color attachment. ColorBlendAdvancedEXT -> BlendOp advancedBlendOp :: BlendOp , -- | @srcPremultiplied@ specifies whether the source color of the blend -- operation is treated as premultiplied. ColorBlendAdvancedEXT -> Bool srcPremultiplied :: Bool , -- | @dstPremultiplied@ specifies whether the destination color of the blend -- operation is treated as premultiplied. ColorBlendAdvancedEXT -> Bool dstPremultiplied :: Bool , -- | @blendOverlap@ is a -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT' -- value specifying how the source and destination sample’s coverage is -- correlated. ColorBlendAdvancedEXT -> BlendOverlapEXT blendOverlap :: BlendOverlapEXT , -- | @clampResults@ specifies the results must be clamped to the [0,1] range -- before writing to the attachment, which is useful when the attachment -- format is not normalized fixed-point. ColorBlendAdvancedEXT -> Bool clampResults :: Bool } deriving (Typeable, ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool (ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool) -> (ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool) -> Eq ColorBlendAdvancedEXT forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool == :: ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool $c/= :: ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool /= :: ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> Bool Eq) #if defined(GENERIC_INSTANCES) deriving instance Generic (ColorBlendAdvancedEXT) #endif deriving instance Show ColorBlendAdvancedEXT instance ToCStruct ColorBlendAdvancedEXT where withCStruct :: forall b. ColorBlendAdvancedEXT -> (Ptr ColorBlendAdvancedEXT -> IO b) -> IO b withCStruct ColorBlendAdvancedEXT x Ptr ColorBlendAdvancedEXT -> IO b f = Int -> (Ptr ColorBlendAdvancedEXT -> IO b) -> IO b forall a b. Int -> (Ptr a -> IO b) -> IO b allocaBytes Int 20 ((Ptr ColorBlendAdvancedEXT -> IO b) -> IO b) -> (Ptr ColorBlendAdvancedEXT -> IO b) -> IO b forall a b. (a -> b) -> a -> b $ \Ptr ColorBlendAdvancedEXT p -> Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO b -> IO b forall b. Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr ColorBlendAdvancedEXT p ColorBlendAdvancedEXT x (Ptr ColorBlendAdvancedEXT -> IO b f Ptr ColorBlendAdvancedEXT p) pokeCStruct :: forall b. Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO b -> IO b pokeCStruct Ptr ColorBlendAdvancedEXT p ColorBlendAdvancedEXT{Bool BlendOverlapEXT BlendOp $sel:advancedBlendOp:ColorBlendAdvancedEXT :: ColorBlendAdvancedEXT -> BlendOp $sel:srcPremultiplied:ColorBlendAdvancedEXT :: ColorBlendAdvancedEXT -> Bool $sel:dstPremultiplied:ColorBlendAdvancedEXT :: ColorBlendAdvancedEXT -> Bool $sel:blendOverlap:ColorBlendAdvancedEXT :: ColorBlendAdvancedEXT -> BlendOverlapEXT $sel:clampResults:ColorBlendAdvancedEXT :: ColorBlendAdvancedEXT -> Bool advancedBlendOp :: BlendOp srcPremultiplied :: Bool dstPremultiplied :: Bool blendOverlap :: BlendOverlapEXT clampResults :: Bool ..} IO b f = do Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendOp)) (BlendOp advancedBlendOp) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool srcPremultiplied)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool dstPremultiplied)) Ptr BlendOverlapEXT -> BlendOverlapEXT -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOverlapEXT forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendOverlapEXT)) (BlendOverlapEXT blendOverlap) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool clampResults)) IO b f cStructSize :: Int cStructSize = Int 20 cStructAlignment :: Int cStructAlignment = Int 4 pokeZeroCStruct :: forall b. Ptr ColorBlendAdvancedEXT -> IO b -> IO b pokeZeroCStruct Ptr ColorBlendAdvancedEXT p IO b f = do Ptr BlendOp -> BlendOp -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendOp)) (BlendOp forall a. Zero a => a zero) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) Ptr BlendOverlapEXT -> BlendOverlapEXT -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOverlapEXT forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendOverlapEXT)) (BlendOverlapEXT forall a. Zero a => a zero) Ptr Bool32 -> Bool32 -> IO () forall a. Storable a => Ptr a -> a -> IO () poke ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) (Bool -> Bool32 boolToBool32 (Bool forall a. Zero a => a zero)) IO b f instance FromCStruct ColorBlendAdvancedEXT where peekCStruct :: Ptr ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT peekCStruct Ptr ColorBlendAdvancedEXT p = do BlendOp advancedBlendOp <- forall a. Storable a => Ptr a -> IO a peek @BlendOp ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOp forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 0 :: Ptr BlendOp)) Bool32 srcPremultiplied <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 4 :: Ptr Bool32)) Bool32 dstPremultiplied <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 8 :: Ptr Bool32)) BlendOverlapEXT blendOverlap <- forall a. Storable a => Ptr a -> IO a peek @BlendOverlapEXT ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr BlendOverlapEXT forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 12 :: Ptr BlendOverlapEXT)) Bool32 clampResults <- forall a. Storable a => Ptr a -> IO a peek @Bool32 ((Ptr ColorBlendAdvancedEXT p Ptr ColorBlendAdvancedEXT -> Int -> Ptr Bool32 forall a b. Ptr a -> Int -> Ptr b `plusPtr` Int 16 :: Ptr Bool32)) ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT) -> ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT forall a b. (a -> b) -> a -> b $ BlendOp -> Bool -> Bool -> BlendOverlapEXT -> Bool -> ColorBlendAdvancedEXT ColorBlendAdvancedEXT BlendOp advancedBlendOp (Bool32 -> Bool bool32ToBool Bool32 srcPremultiplied) (Bool32 -> Bool bool32ToBool Bool32 dstPremultiplied) BlendOverlapEXT blendOverlap (Bool32 -> Bool bool32ToBool Bool32 clampResults) instance Storable ColorBlendAdvancedEXT where sizeOf :: ColorBlendAdvancedEXT -> Int sizeOf ~ColorBlendAdvancedEXT _ = Int 20 alignment :: ColorBlendAdvancedEXT -> Int alignment ~ColorBlendAdvancedEXT _ = Int 4 peek :: Ptr ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT peek = Ptr ColorBlendAdvancedEXT -> IO ColorBlendAdvancedEXT forall a. FromCStruct a => Ptr a -> IO a peekCStruct poke :: Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO () poke Ptr ColorBlendAdvancedEXT ptr ColorBlendAdvancedEXT poked = Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO () -> IO () forall b. Ptr ColorBlendAdvancedEXT -> ColorBlendAdvancedEXT -> IO b -> IO b forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b pokeCStruct Ptr ColorBlendAdvancedEXT ptr ColorBlendAdvancedEXT poked (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ()) instance Zero ColorBlendAdvancedEXT where zero :: ColorBlendAdvancedEXT zero = BlendOp -> Bool -> Bool -> BlendOverlapEXT -> Bool -> ColorBlendAdvancedEXT ColorBlendAdvancedEXT BlendOp forall a. Zero a => a zero Bool forall a. Zero a => a zero Bool forall a. Zero a => a zero BlendOverlapEXT forall a. Zero a => a zero Bool forall a. Zero a => a zero type EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION" pattern EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION :: forall a . Integral a => a pattern $bEXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION :: forall a. Integral a => a $mEXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION :: forall {r} {a}. Integral a => a -> ((# #) -> r) -> ((# #) -> r) -> r EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2 type EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3" -- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME" pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a pattern $bEXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a $mEXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME :: forall {r} {a}. (Eq a, IsString a) => a -> ((# #) -> r) -> ((# #) -> r) -> r EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3"