packages feed

vulkan-3.27: src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs

{-# language CPP #-}
-- No documentation found for Chapter "PipelineDepthStencilStateCreateFlagBits"
module Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits  ( PipelineDepthStencilStateCreateFlags
                                                                    , PipelineDepthStencilStateCreateFlagBits( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
                                                                                                             , PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
                                                                                                             , ..
                                                                                                             )
                                                                    ) where

import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Vulkan.Core10.FundamentalTypes (Flags)
type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagBits

-- | VkPipelineDepthStencilStateCreateFlagBits - Bitmask specifying
-- additional depth\/stencil state information.
--
-- = Description
--
-- -   'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
--     specifies that access to the depth aspects of depth\/stencil and
--     input attachments will have implicit framebuffer-local memory
--     dependencies.
--
-- -   'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
--     specifies that access to the stencil aspects of depth\/stencil and
--     input attachments will have implicit framebuffer-local memory
--     dependencies.
--
-- When
-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
-- is included in a pipeline, it forms a framebuffer-local memory
-- dependency for each fragment generated by draw commands for that
-- pipeline with the following scopes:
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
--     and
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--     pipeline stages executed by all previous fragments (as defined by
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#drawing-primitive-order primitive order>)
--     in the corresponding
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
--     including those generated by the same draw command.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
--     stage executed by the generated fragment.
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all writes to the depth aspect of depth\/stencil
--     attachments.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all reads from the depth aspect of input attachments.
--
-- When
-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
-- is included in a pipeline, it forms a framebuffer-local memory
-- dependency for each fragment generated by draw commands for that
-- pipeline with the following scopes:
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--     pipeline stages executed by all previous fragments (as defined by
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#drawing-primitive-order primitive order>)
--     in the corresponding
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
--     including those generated by the same draw command.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
--     and
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--     pipeline stages executed by the generated fragment.
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all writes to the stencil aspect of depth\/stencil
--     attachments.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all reads from the stencil aspect of input attachments.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'PipelineDepthStencilStateCreateFlags'
newtype PipelineDepthStencilStateCreateFlagBits = PipelineDepthStencilStateCreateFlagBits Flags
  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)

-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"
pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000002

-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"
pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000001

conNamePipelineDepthStencilStateCreateFlagBits :: String
conNamePipelineDepthStencilStateCreateFlagBits = "PipelineDepthStencilStateCreateFlagBits"

enumPrefixPipelineDepthStencilStateCreateFlagBits :: String
enumPrefixPipelineDepthStencilStateCreateFlagBits = "PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_"

showTablePipelineDepthStencilStateCreateFlagBits :: [(PipelineDepthStencilStateCreateFlagBits, String)]
showTablePipelineDepthStencilStateCreateFlagBits =
  [
    ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
    , "STENCIL_ACCESS_BIT_EXT"
    )
  ,
    ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
    , "DEPTH_ACCESS_BIT_EXT"
    )
  ]

instance Show PipelineDepthStencilStateCreateFlagBits where
  showsPrec =
    enumShowsPrec
      enumPrefixPipelineDepthStencilStateCreateFlagBits
      showTablePipelineDepthStencilStateCreateFlagBits
      conNamePipelineDepthStencilStateCreateFlagBits
      (\(PipelineDepthStencilStateCreateFlagBits x) -> x)
      (\x -> showString "0x" . showHex x)

instance Read PipelineDepthStencilStateCreateFlagBits where
  readPrec =
    enumReadPrec
      enumPrefixPipelineDepthStencilStateCreateFlagBits
      showTablePipelineDepthStencilStateCreateFlagBits
      conNamePipelineDepthStencilStateCreateFlagBits
      PipelineDepthStencilStateCreateFlagBits