{-# language Strict #-} {-# language CPP #-} {-# language PatternSynonyms #-} {-# language OverloadedStrings #-} {-# language DataKinds #-} {-# language TypeOperators #-} {-# language DuplicateRecordFields #-} module Graphics.Vulkan.Extensions.VK_EXT_sample_locations ( pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT , pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT , pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT , pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT , pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT , pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT , pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION , pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME , vkCmdSetSampleLocationsEXT , vkGetPhysicalDeviceMultisamplePropertiesEXT , VkSampleLocationEXT(..) , VkSampleLocationsInfoEXT(..) , VkAttachmentSampleLocationsEXT(..) , VkSubpassSampleLocationsEXT(..) , VkRenderPassSampleLocationsBeginInfoEXT(..) , VkPipelineSampleLocationsStateCreateInfoEXT(..) , VkPhysicalDeviceSampleLocationsPropertiesEXT(..) , VkMultisamplePropertiesEXT(..) ) where import Data.String ( IsString ) import Data.Vector.Storable.Sized ( Vector ) import Data.Word ( Word32 ) import Foreign.C.Types ( CFloat(..) ) import Foreign.Ptr ( plusPtr , Ptr ) import Foreign.Storable ( Storable(..) , Storable ) import Graphics.Vulkan.NamedType ( (:::) ) import Graphics.Vulkan.Core10.Core ( VkBool32(..) , VkStructureType(..) ) import Graphics.Vulkan.Core10.DeviceInitialization ( VkSampleCountFlags , VkSampleCountFlagBits(..) , VkPhysicalDevice , VkImageCreateFlagBits(..) ) import Graphics.Vulkan.Core10.Pipeline ( VkExtent2D(..) , VkDynamicState(..) ) import Graphics.Vulkan.Core10.Queue ( VkCommandBuffer ) -- No documentation found for Nested "VkDynamicState" "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT" pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT :: VkDynamicState pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = VkDynamicState 1000143000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = VkStructureType 1000143000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT" pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = VkStructureType 1000143001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT" pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = VkStructureType 1000143002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = VkStructureType 1000143003 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT" pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT :: VkStructureType pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = VkStructureType 1000143004 -- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT" pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT :: VkImageCreateFlagBits pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = VkImageCreateFlagBits 0x00001000 -- No documentation found for TopLevel "VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION" pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION :: Integral a => a pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION = 1 -- No documentation found for TopLevel "VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME" pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME :: (Eq a ,IsString a) => a pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME = "VK_EXT_sample_locations" -- | vkCmdSetSampleLocationsEXT - Set the dynamic sample locations state -- -- = Parameters -- #_parameters# -- -- - @commandBuffer@ is the command buffer into which the command will be -- recorded. -- -- - @pSampleLocationsInfo@ is the sample locations state to set. -- -- = Description -- #_description# -- -- == Valid Usage -- -- - The bound graphics pipeline /must/ have been created with the -- @VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT@ dynamic state enabled -- -- - The @sampleLocationsPerPixel@ member of @pSampleLocationsInfo@ -- /must/ equal the @rasterizationSamples@ member of the -- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo' -- structure the bound graphics pipeline has been created with -- -- - If -- 'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@ -- is @VK_FALSE@ then the current render pass /must/ have been begun by -- specifying a 'VkRenderPassSampleLocationsBeginInfoEXT' structure -- whose @pPostSubpassSampleLocations@ member contains an element with -- a @subpassIndex@ matching the current subpass index and the -- @sampleLocationsInfo@ member of that element /must/ match the sample -- locations state pointed to by @pSampleLocationsInfo@ -- -- == Valid Usage (Implicit) -- -- - @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle -- -- - @pSampleLocationsInfo@ /must/ be a valid pointer to a valid -- @VkSampleLocationsInfoEXT@ structure -- -- - @commandBuffer@ /must/ be in the -- <#commandbuffers-lifecycle recording state> -- -- - The @VkCommandPool@ that @commandBuffer@ was allocated from /must/ -- support graphics operations -- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized -- -- - Host access to the @VkCommandPool@ that @commandBuffer@ was -- allocated from /must/ be externally synchronized -- -- == Command Properties -- -- > +-----------------+-----------------+-----------------+-----------------+ -- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati | -- > | erLevel Command | derPass Render | ts Supported Qu | on-pipeline-sta | -- > | Buffer Levels> | Pass Scope> | eue Types> | ges-types Pipel | -- > | | | | ine Type> | -- > +=================+=================+=================+=================+ -- > | Primary | Both | Graphics | | -- > | Secondary | | | | -- > +-----------------+-----------------+-----------------+-----------------+ -- -- = See Also -- #_see_also# -- -- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', -- 'VkSampleLocationsInfoEXT' foreign import ccall "vkCmdSetSampleLocationsEXT" vkCmdSetSampleLocationsEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pSampleLocationsInfo" ::: Ptr VkSampleLocationsInfoEXT) -> IO () -- | vkGetPhysicalDeviceMultisamplePropertiesEXT - Report sample count -- specific multisampling capabilities of a physical device -- -- = Parameters -- #_parameters# -- -- - @physicalDevice@ is the physical device from which to query the -- additional multisampling capabilities. -- -- - @samples@ is the sample count to query the capabilities for. -- -- - @pMultisampleProperties@ is a pointer to a structure of type -- 'VkMultisamplePropertiesEXT', in which information about the -- additional multisampling capabilities specific to the sample count -- is returned. -- -- = Description -- #_description# -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @samples@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits' -- value -- -- - @pMultisampleProperties@ /must/ be a valid pointer to a -- @VkMultisamplePropertiesEXT@ structure -- -- = See Also -- #_see_also# -- -- 'VkMultisamplePropertiesEXT', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits' foreign import ccall "vkGetPhysicalDeviceMultisamplePropertiesEXT" vkGetPhysicalDeviceMultisamplePropertiesEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("samples" ::: VkSampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr VkMultisamplePropertiesEXT) -> IO () -- | VkSampleLocationEXT - Structure specifying the coordinates of a sample -- location -- -- = Description -- #_description# -- -- The domain space of the sample location coordinates has an upper-left -- origin within the pixel in framebuffer space. -- -- The values specified in a @VkSampleLocationEXT@ structure are always -- clamped to the implementation-dependent sample location coordinate range -- [@sampleLocationCoordinateRange@[0],@sampleLocationCoordinateRange@[1]] -- that /can/ be queried by chaining the -- 'VkPhysicalDeviceSampleLocationsPropertiesEXT' structure to the @pNext@ -- chain of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2'. -- -- = See Also -- #_see_also# -- -- 'VkSampleLocationsInfoEXT' data VkSampleLocationEXT = VkSampleLocationEXT { -- No documentation found for Nested "VkSampleLocationEXT" "vkX" vkX :: CFloat , -- No documentation found for Nested "VkSampleLocationEXT" "vkY" vkY :: CFloat } deriving (Eq, Show) instance Storable VkSampleLocationEXT where sizeOf ~_ = 8 alignment ~_ = 4 peek ptr = VkSampleLocationEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 4) poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkSampleLocationEXT)) *> poke (ptr `plusPtr` 4) (vkY (poked :: VkSampleLocationEXT)) -- | VkSampleLocationsInfoEXT - Structure specifying a set of sample -- locations -- -- = Description -- #_description# -- -- This structure /can/ be used either to specify the sample locations to -- be used for rendering or to specify the set of sample locations an image -- subresource has been last rendered with for the purposes of layout -- transitions of depth\/stencil images created with -- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@. -- -- The sample locations in @pSampleLocations@ specify -- @sampleLocationsPerPixel@ number of sample locations for each pixel in -- the grid of the size specified in @sampleLocationGridSize@. The sample -- location for sample i at the pixel grid location (x,y) is taken from -- @pSampleLocations@[(x + y * @sampleLocationGridSize.width@) * -- @sampleLocationsPerPixel@ + i]. -- -- == Valid Usage -- -- - @sampleLocationsPerPixel@ /must/ be a bit value that is set in -- 'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@sampleLocationSampleCounts@ -- -- - @sampleLocationsCount@ /must/ equal @sampleLocationsPerPixel@ × -- @sampleLocationGridSize.width@ × @sampleLocationGridSize.height@ -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT@ -- -- - @sampleLocationsPerPixel@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits' -- value -- -- - @pSampleLocations@ /must/ be a valid pointer to an array of -- @sampleLocationsCount@ @VkSampleLocationEXT@ structures -- -- - @sampleLocationsCount@ /must/ be greater than @0@ -- -- = See Also -- #_see_also# -- -- 'VkAttachmentSampleLocationsEXT', -- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D', -- 'VkPipelineSampleLocationsStateCreateInfoEXT', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits', -- 'VkSampleLocationEXT', 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'VkSubpassSampleLocationsEXT', 'vkCmdSetSampleLocationsEXT' data VkSampleLocationsInfoEXT = VkSampleLocationsInfoEXT { -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSType" vkSType :: VkStructureType , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkPNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationsPerPixel" vkSampleLocationsPerPixel :: VkSampleCountFlagBits , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationGridSize" vkSampleLocationGridSize :: VkExtent2D , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationsCount" vkSampleLocationsCount :: Word32 , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkPSampleLocations" vkPSampleLocations :: Ptr VkSampleLocationEXT } deriving (Eq, Show) instance Storable VkSampleLocationsInfoEXT where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkSampleLocationsInfoEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 28) <*> peek (ptr `plusPtr` 32) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSampleLocationsInfoEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSampleLocationsInfoEXT)) *> poke (ptr `plusPtr` 16) (vkSampleLocationsPerPixel (poked :: VkSampleLocationsInfoEXT)) *> poke (ptr `plusPtr` 20) (vkSampleLocationGridSize (poked :: VkSampleLocationsInfoEXT)) *> poke (ptr `plusPtr` 28) (vkSampleLocationsCount (poked :: VkSampleLocationsInfoEXT)) *> poke (ptr `plusPtr` 32) (vkPSampleLocations (poked :: VkSampleLocationsInfoEXT)) -- | VkAttachmentSampleLocationsEXT - Structure specifying the sample -- locations state to use in the initial layout transition of attachments -- -- = Description -- #_description# -- -- If the image referenced by the framebuffer attachment at index -- @attachmentIndex@ was not created with -- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@ then the -- values specified in @sampleLocationsInfo@ are ignored. -- -- == Valid Usage -- -- - @attachmentIndex@ /must/ be less than the @attachmentCount@ -- specified in 'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo' -- the render pass specified by -- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'::@renderPass@ -- was created with -- -- == Valid Usage (Implicit) -- -- - @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@ -- structure -- -- = See Also -- #_see_also# -- -- 'VkRenderPassSampleLocationsBeginInfoEXT', 'VkSampleLocationsInfoEXT' data VkAttachmentSampleLocationsEXT = VkAttachmentSampleLocationsEXT { -- No documentation found for Nested "VkAttachmentSampleLocationsEXT" "vkAttachmentIndex" vkAttachmentIndex :: Word32 , -- No documentation found for Nested "VkAttachmentSampleLocationsEXT" "vkSampleLocationsInfo" vkSampleLocationsInfo :: VkSampleLocationsInfoEXT } deriving (Eq, Show) instance Storable VkAttachmentSampleLocationsEXT where sizeOf ~_ = 48 alignment ~_ = 8 peek ptr = VkAttachmentSampleLocationsEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) poke ptr poked = poke (ptr `plusPtr` 0) (vkAttachmentIndex (poked :: VkAttachmentSampleLocationsEXT)) *> poke (ptr `plusPtr` 8) (vkSampleLocationsInfo (poked :: VkAttachmentSampleLocationsEXT)) -- | VkSubpassSampleLocationsEXT - Structure specifying the sample locations -- state to use for layout transitions of attachments performed after a -- given subpass -- -- = Description -- #_description# -- -- If the image referenced by the depth\/stencil attachment used in the -- subpass identified by @subpassIndex@ was not created with -- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@ or if the -- subpass does not use a depth\/stencil attachment, and -- 'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@ -- is @VK_TRUE@ then the values specified in @sampleLocationsInfo@ are -- ignored. -- -- == Valid Usage -- -- - @subpassIndex@ /must/ be less than the @subpassCount@ specified in -- 'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo' the render pass -- specified by -- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'::@renderPass@ -- was created with -- -- == Valid Usage (Implicit) -- -- - @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@ -- structure -- -- = See Also -- #_see_also# -- -- 'VkRenderPassSampleLocationsBeginInfoEXT', 'VkSampleLocationsInfoEXT' data VkSubpassSampleLocationsEXT = VkSubpassSampleLocationsEXT { -- No documentation found for Nested "VkSubpassSampleLocationsEXT" "vkSubpassIndex" vkSubpassIndex :: Word32 , -- No documentation found for Nested "VkSubpassSampleLocationsEXT" "vkSampleLocationsInfo" vkSampleLocationsInfo :: VkSampleLocationsInfoEXT } deriving (Eq, Show) instance Storable VkSubpassSampleLocationsEXT where sizeOf ~_ = 48 alignment ~_ = 8 peek ptr = VkSubpassSampleLocationsEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) poke ptr poked = poke (ptr `plusPtr` 0) (vkSubpassIndex (poked :: VkSubpassSampleLocationsEXT)) *> poke (ptr `plusPtr` 8) (vkSampleLocationsInfo (poked :: VkSubpassSampleLocationsEXT)) -- | VkRenderPassSampleLocationsBeginInfoEXT - Structure specifying sample -- locations to use for the layout transition of custom sample locations -- compatible depth\/stencil attachments -- -- = Description -- #_description# -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT@ -- -- - If @attachmentInitialSampleLocationsCount@ is not @0@, -- @pAttachmentInitialSampleLocations@ /must/ be a valid pointer to an -- array of @attachmentInitialSampleLocationsCount@ valid -- @VkAttachmentSampleLocationsEXT@ structures -- -- - If @postSubpassSampleLocationsCount@ is not @0@, -- @pPostSubpassSampleLocations@ /must/ be a valid pointer to an array -- of @postSubpassSampleLocationsCount@ valid -- @VkSubpassSampleLocationsEXT@ structures -- -- = See Also -- #_see_also# -- -- 'VkAttachmentSampleLocationsEXT', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'VkSubpassSampleLocationsEXT' data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT { -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkSType" vkSType :: VkStructureType , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkAttachmentInitialSampleLocationsCount" vkAttachmentInitialSampleLocationsCount :: Word32 , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPAttachmentInitialSampleLocations" vkPAttachmentInitialSampleLocations :: Ptr VkAttachmentSampleLocationsEXT , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPostSubpassSampleLocationsCount" vkPostSubpassSampleLocationsCount :: Word32 , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPPostSubpassSampleLocations" vkPPostSubpassSampleLocations :: Ptr VkSubpassSampleLocationsEXT } deriving (Eq, Show) instance Storable VkRenderPassSampleLocationsBeginInfoEXT where sizeOf ~_ = 48 alignment ~_ = 8 peek ptr = VkRenderPassSampleLocationsBeginInfoEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 24) <*> peek (ptr `plusPtr` 32) <*> peek (ptr `plusPtr` 40) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) *> poke (ptr `plusPtr` 16) (vkAttachmentInitialSampleLocationsCount (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) *> poke (ptr `plusPtr` 24) (vkPAttachmentInitialSampleLocations (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) *> poke (ptr `plusPtr` 32) (vkPostSubpassSampleLocationsCount (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) *> poke (ptr `plusPtr` 40) (vkPPostSubpassSampleLocations (poked :: VkRenderPassSampleLocationsBeginInfoEXT)) -- | VkPipelineSampleLocationsStateCreateInfoEXT - Structure specifying -- sample locations for a pipeline -- -- = Description -- #_description# -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT@ -- -- - @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@ -- structure -- -- = See Also -- #_see_also# -- -- @VkBool32@, 'VkSampleLocationsInfoEXT', -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkPipelineSampleLocationsStateCreateInfoEXT = VkPipelineSampleLocationsStateCreateInfoEXT { -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSType" vkSType :: VkStructureType , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkPNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSampleLocationsEnable" vkSampleLocationsEnable :: VkBool32 , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSampleLocationsInfo" vkSampleLocationsInfo :: VkSampleLocationsInfoEXT } deriving (Eq, Show) instance Storable VkPipelineSampleLocationsStateCreateInfoEXT where sizeOf ~_ = 64 alignment ~_ = 8 peek ptr = VkPipelineSampleLocationsStateCreateInfoEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 24) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineSampleLocationsStateCreateInfoEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineSampleLocationsStateCreateInfoEXT)) *> poke (ptr `plusPtr` 16) (vkSampleLocationsEnable (poked :: VkPipelineSampleLocationsStateCreateInfoEXT)) *> poke (ptr `plusPtr` 24) (vkSampleLocationsInfo (poked :: VkPipelineSampleLocationsStateCreateInfoEXT)) -- | VkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing -- sample location limits that can be supported by an implementation -- -- = Members -- #_members# -- -- The members of the @VkPhysicalDeviceSampleLocationsPropertiesEXT@ -- structure describe the following implementation-dependent limits: -- -- = Description -- #_description# -- -- - @sampleLocationSampleCounts@ is a bitmask of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits' -- indicating the sample counts supporting custom sample locations. -- -- - @maxSampleLocationGridSize@ is the maximum size of the pixel grid in -- which sample locations /can/ vary that is supported for all sample -- counts in @sampleLocationSampleCounts@. -- -- - @sampleLocationCoordinateRange@[2] is the range of supported sample -- location coordinates. -- -- - @sampleLocationSubPixelBits@ is the number of bits of subpixel -- precision for sample locations. -- -- - @variableSampleLocations@ specifies whether the sample locations -- used by all pipelines that will be bound to a command buffer during -- a subpass /must/ match. If set to @VK_TRUE@, the implementation -- supports variable sample locations in a subpass. If set to -- @VK_FALSE@, then the sample locations /must/ stay constant in each -- subpass. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT@ -- -- If the @VkPhysicalDeviceSampleLocationsPropertiesEXT@ structure is -- included in the @pNext@ chain of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2', -- it is filled with the implementation-dependent limits. -- -- = See Also -- #_see_also# -- -- @VkBool32@, 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlags', -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkPhysicalDeviceSampleLocationsPropertiesEXT = VkPhysicalDeviceSampleLocationsPropertiesEXT { -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSType" vkSType :: VkStructureType , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkPNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationSampleCounts" vkSampleLocationSampleCounts :: VkSampleCountFlags , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkMaxSampleLocationGridSize" vkMaxSampleLocationGridSize :: VkExtent2D , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationCoordinateRange" vkSampleLocationCoordinateRange :: Vector 2 CFloat , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationSubPixelBits" vkSampleLocationSubPixelBits :: Word32 , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkVariableSampleLocations" vkVariableSampleLocations :: VkBool32 } deriving (Eq, Show) instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT where sizeOf ~_ = 48 alignment ~_ = 8 peek ptr = VkPhysicalDeviceSampleLocationsPropertiesEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 28) <*> peek (ptr `plusPtr` 36) <*> peek (ptr `plusPtr` 40) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 16) (vkSampleLocationSampleCounts (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 20) (vkMaxSampleLocationGridSize (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 28) (vkSampleLocationCoordinateRange (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 36) (vkSampleLocationSubPixelBits (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) *> poke (ptr `plusPtr` 40) (vkVariableSampleLocations (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT)) -- | VkMultisamplePropertiesEXT - Structure returning information about -- sample count specific additional multisampling capabilities -- -- = Description -- #_description# -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT@ -- -- - @pNext@ /must/ be @NULL@ -- -- = See Also -- #_see_also# -- -- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceMultisamplePropertiesEXT' data VkMultisamplePropertiesEXT = VkMultisamplePropertiesEXT { -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkSType" vkSType :: VkStructureType , -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkPNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkMaxSampleLocationGridSize" vkMaxSampleLocationGridSize :: VkExtent2D } deriving (Eq, Show) instance Storable VkMultisamplePropertiesEXT where sizeOf ~_ = 24 alignment ~_ = 8 peek ptr = VkMultisamplePropertiesEXT <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMultisamplePropertiesEXT)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMultisamplePropertiesEXT)) *> poke (ptr `plusPtr` 16) (vkMaxSampleLocationGridSize (poked :: VkMultisamplePropertiesEXT))