{-# OPTIONS_GHC -fno-warn-orphans#-}
{-# OPTIONS_HADDOCK not-home#-}
{-# LANGUAGE CPP                      #-}
{-# LANGUAGE DataKinds                #-}
{-# LANGUAGE FlexibleInstances        #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE MagicHash                #-}
{-# LANGUAGE PatternSynonyms          #-}
{-# LANGUAGE Strict                   #-}
{-# LANGUAGE TypeFamilies             #-}
{-# LANGUAGE ViewPatterns             #-}
module Graphics.Vulkan.Ext.VK_AMD_display_native_hdr
       (AHardwareBuffer(), ANativeWindow(), CAMetalLayer(), VkBool32(..),
        VkDeviceAddress(..), VkDeviceSize(..), VkFlags(..),
        VkSampleMask(..), pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR,
        VkColorComponentBitmask(..), VkColorSpaceKHR(..),
        VkColorComponentFlagBits(), VkColorComponentFlags(),
        VkCompositeAlphaBitmaskKHR(..), VkCompositeAlphaFlagBitsKHR(),
        VkCompositeAlphaFlagsKHR(),
        VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkExtent2D, VkFormat(..),
        VkFormatFeatureBitmask(..), VkFormatFeatureFlagBits(),
        VkFormatFeatureFlags(), VkImageAspectBitmask(..),
        VkImageCreateBitmask(..), VkImageLayout(..), VkImageTiling(..),
        VkImageType(..), VkImageUsageBitmask(..), VkImageViewType(..),
        VkImageAspectFlagBits(), VkImageAspectFlags(),
        VkImageCreateFlagBits(), VkImageCreateFlags(),
        VkImageUsageFlagBits(), VkImageUsageFlags(),
        VkImageViewCreateBitmask(..), VkImageViewCreateFlagBits(),
        VkImageViewCreateFlags(), VkPresentModeKHR(..), VkSharingMode(..),
        VkStructureType(..), VkSurfaceCapabilities2KHR,
        VkSurfaceCapabilitiesKHR, VkSurfaceCounterBitmaskEXT(..),
        VkSurfaceTransformBitmaskKHR(..), VkSurfaceCounterFlagBitsEXT(),
        VkSurfaceCounterFlagsEXT(), VkSurfaceTransformFlagBitsKHR(),
        VkSurfaceTransformFlagsKHR(),
        VkSwapchainImageUsageBitmaskANDROID(..),
        VkSwapchainCreateBitmaskKHR(..), VkSwapchainCreateFlagBitsKHR(),
        VkSwapchainCreateFlagsKHR(),
        VkSwapchainImageUsageFlagBitsANDROID(),
        VkSwapchainImageUsageFlagsANDROID(), VkSwapchainCreateInfoKHR,
        VkSwapchainDisplayNativeHdrCreateInfoAMD, -- > #include "vk_platform.h"
                                                  VkSetLocalDimmingAMD,
        pattern VkSetLocalDimmingAMD, HS_vkSetLocalDimmingAMD,
        PFN_vkSetLocalDimmingAMD, module Graphics.Vulkan.Marshal,
        VkAccelerationStructureKHR, VkAccelerationStructureKHR_T(),
        VkAccelerationStructureNV, VkAccelerationStructureNV_T(), VkBuffer,
        VkBufferView, VkBufferView_T(), VkBuffer_T(), VkCommandBuffer,
        VkCommandBuffer_T(), VkCommandPool, VkCommandPool_T(),
        VkDebugReportCallbackEXT, VkDebugReportCallbackEXT_T(),
        VkDebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT_T(),
        VkDeferredOperationKHR, VkDeferredOperationKHR_T(),
        VkDescriptorPool, VkDescriptorPool_T(), VkDescriptorSet,
        VkDescriptorSetLayout, VkDescriptorSetLayout_T(),
        VkDescriptorSet_T(), VkDescriptorUpdateTemplate,
        VkDescriptorUpdateTemplateKHR, VkDescriptorUpdateTemplateKHR_T(),
        VkDescriptorUpdateTemplate_T(), VkDevice, VkDeviceMemory,
        VkDeviceMemory_T(), VkDevice_T(), VkDisplayKHR, VkDisplayKHR_T(),
        VkDisplayModeKHR, VkDisplayModeKHR_T(), VkEvent, VkEvent_T(),
        VkFence, VkFence_T(), VkFramebuffer, VkFramebuffer_T(), VkImage,
        VkImageView, VkImageView_T(), VkImage_T(),
        VkIndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV_T(),
        VkInstance, VkInstance_T(), VkPerformanceConfigurationINTEL,
        VkPerformanceConfigurationINTEL_T(), VkPhysicalDevice,
        VkPhysicalDevice_T(), VkPipeline, VkPipelineCache,
        VkPipelineCache_T(), VkPipelineLayout, VkPipelineLayout_T(),
        VkPipeline_T(), VkPrivateDataSlotEXT, VkPrivateDataSlotEXT_T(),
        VkQueryPool, VkQueryPool_T(), VkQueue, VkQueue_T(), VkRenderPass,
        VkRenderPass_T(), VkSampler, VkSamplerYcbcrConversion,
        VkSamplerYcbcrConversionKHR, VkSamplerYcbcrConversionKHR_T(),
        VkSamplerYcbcrConversion_T(), VkSampler_T(), VkSemaphore,
        VkSemaphore_T(), VkShaderModule, VkShaderModule_T(), VkSurfaceKHR,
        VkSurfaceKHR_T(), VkSwapchainKHR, VkSwapchainKHR_T(),
        VkValidationCacheEXT, VkValidationCacheEXT_T(),
        VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION,
        pattern VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION,
        VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME,
        pattern VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
        pattern VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
        pattern VK_COLOR_SPACE_DISPLAY_NATIVE_AMD)
       where
import GHC.Ptr                                           (Ptr (..))
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
import Graphics.Vulkan.Types.BaseTypes
import Graphics.Vulkan.Types.Enum.Color
import Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
import Graphics.Vulkan.Types.Enum.Format
import Graphics.Vulkan.Types.Enum.Image
import Graphics.Vulkan.Types.Enum.PresentModeKHR
import Graphics.Vulkan.Types.Enum.SharingMode
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Enum.Surface
import Graphics.Vulkan.Types.Enum.Swapchain
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.Display              (VkDisplayNativeHdrSurfaceCapabilitiesAMD)
import Graphics.Vulkan.Types.Struct.Extent               (VkExtent2D)
import Graphics.Vulkan.Types.Struct.Surface              (VkSurfaceCapabilities2KHR,
                                                          VkSurfaceCapabilitiesKHR)
import Graphics.Vulkan.Types.Struct.Swapchain            (VkSwapchainCreateInfoKHR,
                                                          VkSwapchainDisplayNativeHdrCreateInfoAMD)

pattern VkSetLocalDimmingAMD :: CString

pattern $bVkSetLocalDimmingAMD :: CString
$mVkSetLocalDimmingAMD :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkSetLocalDimmingAMD <- (is_VkSetLocalDimmingAMD -> True)
  where
    VkSetLocalDimmingAMD = CString
_VkSetLocalDimmingAMD

{-# INLINE _VkSetLocalDimmingAMD #-}

_VkSetLocalDimmingAMD :: CString
_VkSetLocalDimmingAMD :: CString
_VkSetLocalDimmingAMD = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkSetLocalDimmingAMD\NUL"#

{-# INLINE is_VkSetLocalDimmingAMD #-}

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

type VkSetLocalDimmingAMD = "vkSetLocalDimmingAMD"

-- | > void vkSetLocalDimmingAMD
--   >     ( VkDevice device
--   >     , VkSwapchainKHR swapChain
--   >     , VkBool32 localDimmingEnable
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkSetLocalDimmingAMD vkSetLocalDimmingAMD registry at www.khronos.org>
type HS_vkSetLocalDimmingAMD =
     VkDevice -- ^ device
              -> VkSwapchainKHR -- ^ swapChain
                                -> VkBool32 -- ^ localDimmingEnable
                                            -> IO ()

type PFN_vkSetLocalDimmingAMD = FunPtr HS_vkSetLocalDimmingAMD

foreign import ccall unsafe "dynamic"
               unwrapVkSetLocalDimmingAMDUnsafe ::
               PFN_vkSetLocalDimmingAMD -> HS_vkSetLocalDimmingAMD

foreign import ccall safe "dynamic" unwrapVkSetLocalDimmingAMDSafe
               :: PFN_vkSetLocalDimmingAMD -> HS_vkSetLocalDimmingAMD

instance VulkanProc "vkSetLocalDimmingAMD" where
    type VkProcType "vkSetLocalDimmingAMD" = HS_vkSetLocalDimmingAMD
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkSetLocalDimmingAMD

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkSetLocalDimmingAMD")
-> VkProcType "vkSetLocalDimmingAMD"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkSetLocalDimmingAMD")
-> VkProcType "vkSetLocalDimmingAMD"
PFN_vkSetLocalDimmingAMD -> HS_vkSetLocalDimmingAMD
unwrapVkSetLocalDimmingAMDUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkSetLocalDimmingAMD")
-> VkProcType "vkSetLocalDimmingAMD"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkSetLocalDimmingAMD")
-> VkProcType "vkSetLocalDimmingAMD"
PFN_vkSetLocalDimmingAMD -> HS_vkSetLocalDimmingAMD
unwrapVkSetLocalDimmingAMDSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern $bVK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1

type VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1

pattern VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: CString

pattern $bVK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: CString
$mVK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME <-
        (is_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME -> True)
  where
    VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME
      = CString
_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME

{-# INLINE _VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME #-}

_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: CString
_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: CString
_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_AMD_display_native_hdr\NUL"#

{-# INLINE is_VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME #-}

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

type VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME =
     "VK_AMD_display_native_hdr"

pattern VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD :: VkStructureType
$mVK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
        = VkStructureType 1000213000

pattern VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD :: VkStructureType
$mVK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
        = VkStructureType 1000213001

pattern VK_COLOR_SPACE_DISPLAY_NATIVE_AMD :: VkColorSpaceKHR

pattern $bVK_COLOR_SPACE_DISPLAY_NATIVE_AMD :: VkColorSpaceKHR
$mVK_COLOR_SPACE_DISPLAY_NATIVE_AMD :: forall {r}. VkColorSpaceKHR -> (Void# -> r) -> (Void# -> r) -> r
VK_COLOR_SPACE_DISPLAY_NATIVE_AMD =
        VkColorSpaceKHR 1000213000