{-# language CPP #-}
-- No documentation found for Chapter "Handles"
module Vulkan.Core13.Handles  ( PrivateDataSlot(..)
                              , PhysicalDevice(..)
                              , Device(..)
                              , Queue(..)
                              , CommandBuffer(..)
                              , Buffer(..)
                              , Image(..)
                              , ImageView(..)
                              , Fence(..)
                              , Semaphore(..)
                              , Event(..)
                              , QueryPool(..)
                              ) where

import GHC.Show (showParen)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import Data.Word (Word64)
import Vulkan.Core10.APIConstants (HasObjectType(..))
import Vulkan.Core10.APIConstants (IsHandle)
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT))
import Vulkan.Core10.Handles (Buffer(..))
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Event(..))
import Vulkan.Core10.Handles (Fence(..))
import Vulkan.Core10.Handles (Image(..))
import Vulkan.Core10.Handles (ImageView(..))
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (QueryPool(..))
import Vulkan.Core10.Handles (Queue(..))
import Vulkan.Core10.Handles (Semaphore(..))
-- | VkPrivateDataSlot - Opaque handle to a private data slot object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',
-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',
-- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',
-- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData',
-- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT'
newtype PrivateDataSlot = PrivateDataSlot Word64
  deriving newtype (PrivateDataSlot -> PrivateDataSlot -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c/= :: PrivateDataSlot -> PrivateDataSlot -> Bool
== :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c== :: PrivateDataSlot -> PrivateDataSlot -> Bool
Eq, Eq PrivateDataSlot
PrivateDataSlot -> PrivateDataSlot -> Bool
PrivateDataSlot -> PrivateDataSlot -> Ordering
PrivateDataSlot -> PrivateDataSlot -> PrivateDataSlot
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PrivateDataSlot -> PrivateDataSlot -> PrivateDataSlot
$cmin :: PrivateDataSlot -> PrivateDataSlot -> PrivateDataSlot
max :: PrivateDataSlot -> PrivateDataSlot -> PrivateDataSlot
$cmax :: PrivateDataSlot -> PrivateDataSlot -> PrivateDataSlot
>= :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c>= :: PrivateDataSlot -> PrivateDataSlot -> Bool
> :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c> :: PrivateDataSlot -> PrivateDataSlot -> Bool
<= :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c<= :: PrivateDataSlot -> PrivateDataSlot -> Bool
< :: PrivateDataSlot -> PrivateDataSlot -> Bool
$c< :: PrivateDataSlot -> PrivateDataSlot -> Bool
compare :: PrivateDataSlot -> PrivateDataSlot -> Ordering
$ccompare :: PrivateDataSlot -> PrivateDataSlot -> Ordering
Ord, Ptr PrivateDataSlot -> IO PrivateDataSlot
Ptr PrivateDataSlot -> Int -> IO PrivateDataSlot
Ptr PrivateDataSlot -> Int -> PrivateDataSlot -> IO ()
Ptr PrivateDataSlot -> PrivateDataSlot -> IO ()
PrivateDataSlot -> Int
forall b. Ptr b -> Int -> IO PrivateDataSlot
forall b. Ptr b -> Int -> PrivateDataSlot -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr PrivateDataSlot -> PrivateDataSlot -> IO ()
$cpoke :: Ptr PrivateDataSlot -> PrivateDataSlot -> IO ()
peek :: Ptr PrivateDataSlot -> IO PrivateDataSlot
$cpeek :: Ptr PrivateDataSlot -> IO PrivateDataSlot
pokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlot -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlot -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlot
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlot
pokeElemOff :: Ptr PrivateDataSlot -> Int -> PrivateDataSlot -> IO ()
$cpokeElemOff :: Ptr PrivateDataSlot -> Int -> PrivateDataSlot -> IO ()
peekElemOff :: Ptr PrivateDataSlot -> Int -> IO PrivateDataSlot
$cpeekElemOff :: Ptr PrivateDataSlot -> Int -> IO PrivateDataSlot
alignment :: PrivateDataSlot -> Int
$calignment :: PrivateDataSlot -> Int
sizeOf :: PrivateDataSlot -> Int
$csizeOf :: PrivateDataSlot -> Int
Storable, PrivateDataSlot
forall a. a -> Zero a
zero :: PrivateDataSlot
$czero :: PrivateDataSlot
Zero)
  deriving anyclass (Eq PrivateDataSlot
Zero PrivateDataSlot
forall a. Eq a -> Zero a -> IsHandle a
IsHandle)
instance HasObjectType PrivateDataSlot where
  objectTypeAndHandle :: PrivateDataSlot -> (ObjectType, Word64)
objectTypeAndHandle (PrivateDataSlot Word64
h) = (ObjectType
OBJECT_TYPE_PRIVATE_DATA_SLOT, Word64
h)
instance Show PrivateDataSlot where
  showsPrec :: Int -> PrivateDataSlot -> ShowS
showsPrec Int
p (PrivateDataSlot Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"PrivateDataSlot 0x" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Word64
x)