{-# language CPP #-}
-- No documentation found for Chapter "HostImageCopyFlagBits"
module Vulkan.Core14.Enums.HostImageCopyFlagBits  ( pattern HOST_IMAGE_COPY_MEMCPY
                                                  , HostImageCopyFlags
                                                  , HostImageCopyFlagBits( HOST_IMAGE_COPY_MEMCPY_BIT
                                                                         , ..
                                                                         )
                                                  ) 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)
-- No documentation found for TopLevel "VK_HOST_IMAGE_COPY_MEMCPY"
pattern $mHOST_IMAGE_COPY_MEMCPY :: forall {r}.
HostImageCopyFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bHOST_IMAGE_COPY_MEMCPY :: HostImageCopyFlagBits
HOST_IMAGE_COPY_MEMCPY = HOST_IMAGE_COPY_MEMCPY_BIT


type HostImageCopyFlags = HostImageCopyFlagBits

-- | VkHostImageCopyFlagBits - Bitmask specifying additional copy parameters
--
-- = Description
--
-- -   'HOST_IMAGE_COPY_MEMCPY_BIT' specifies that no memory layout
--     swizzling is to be applied during data copy. For copies between
--     memory and images, this flag indicates that image data in host
--     memory is swizzled in exactly the same way as the image data on the
--     device. Using this flag indicates that the implementations /may/ use
--     a simple memory copy to transfer the data between the host memory
--     and the device memory. The format of the swizzled data in host
--     memory is platform dependent and is not defined in this
--     specification.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_4 VK_VERSION_1_4>,
-- 'HostImageCopyFlags'
newtype HostImageCopyFlagBits = HostImageCopyFlagBits Flags
  deriving newtype (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
(HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> Eq HostImageCopyFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
== :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
$c/= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
/= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
Eq, Eq HostImageCopyFlagBits
Eq HostImageCopyFlagBits =>
(HostImageCopyFlagBits -> HostImageCopyFlagBits -> Ordering)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits
    -> HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits
    -> HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> Ord HostImageCopyFlagBits
HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
HostImageCopyFlagBits -> HostImageCopyFlagBits -> Ordering
HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
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
$ccompare :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Ordering
compare :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Ordering
$c< :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
< :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
$c<= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
<= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
$c> :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
> :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
$c>= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
>= :: HostImageCopyFlagBits -> HostImageCopyFlagBits -> Bool
$cmax :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
max :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
$cmin :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
min :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
Ord, Ptr HostImageCopyFlagBits -> IO HostImageCopyFlagBits
Ptr HostImageCopyFlagBits -> Int -> IO HostImageCopyFlagBits
Ptr HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits -> IO ()
Ptr HostImageCopyFlagBits -> HostImageCopyFlagBits -> IO ()
HostImageCopyFlagBits -> Int
(HostImageCopyFlagBits -> Int)
-> (HostImageCopyFlagBits -> Int)
-> (Ptr HostImageCopyFlagBits -> Int -> IO HostImageCopyFlagBits)
-> (Ptr HostImageCopyFlagBits
    -> Int -> HostImageCopyFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO HostImageCopyFlagBits)
-> (forall b. Ptr b -> Int -> HostImageCopyFlagBits -> IO ())
-> (Ptr HostImageCopyFlagBits -> IO HostImageCopyFlagBits)
-> (Ptr HostImageCopyFlagBits -> HostImageCopyFlagBits -> IO ())
-> Storable HostImageCopyFlagBits
forall b. Ptr b -> Int -> IO HostImageCopyFlagBits
forall b. Ptr b -> Int -> HostImageCopyFlagBits -> 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
$csizeOf :: HostImageCopyFlagBits -> Int
sizeOf :: HostImageCopyFlagBits -> Int
$calignment :: HostImageCopyFlagBits -> Int
alignment :: HostImageCopyFlagBits -> Int
$cpeekElemOff :: Ptr HostImageCopyFlagBits -> Int -> IO HostImageCopyFlagBits
peekElemOff :: Ptr HostImageCopyFlagBits -> Int -> IO HostImageCopyFlagBits
$cpokeElemOff :: Ptr HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits -> IO ()
pokeElemOff :: Ptr HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO HostImageCopyFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO HostImageCopyFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> HostImageCopyFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> HostImageCopyFlagBits -> IO ()
$cpeek :: Ptr HostImageCopyFlagBits -> IO HostImageCopyFlagBits
peek :: Ptr HostImageCopyFlagBits -> IO HostImageCopyFlagBits
$cpoke :: Ptr HostImageCopyFlagBits -> HostImageCopyFlagBits -> IO ()
poke :: Ptr HostImageCopyFlagBits -> HostImageCopyFlagBits -> IO ()
Storable, HostImageCopyFlagBits
HostImageCopyFlagBits -> Zero HostImageCopyFlagBits
forall a. a -> Zero a
$czero :: HostImageCopyFlagBits
zero :: HostImageCopyFlagBits
Zero, Eq HostImageCopyFlagBits
HostImageCopyFlagBits
Eq HostImageCopyFlagBits =>
(HostImageCopyFlagBits
 -> HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits
    -> HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits
    -> HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> HostImageCopyFlagBits
-> (Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> Bool)
-> (HostImageCopyFlagBits -> Maybe Int)
-> (HostImageCopyFlagBits -> Int)
-> (HostImageCopyFlagBits -> Bool)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits)
-> (HostImageCopyFlagBits -> Int)
-> Bits HostImageCopyFlagBits
Int -> HostImageCopyFlagBits
HostImageCopyFlagBits -> Bool
HostImageCopyFlagBits -> Int
HostImageCopyFlagBits -> Maybe Int
HostImageCopyFlagBits -> HostImageCopyFlagBits
HostImageCopyFlagBits -> Int -> Bool
HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
.&. :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
$c.|. :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
.|. :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
$cxor :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
xor :: HostImageCopyFlagBits
-> HostImageCopyFlagBits -> HostImageCopyFlagBits
$ccomplement :: HostImageCopyFlagBits -> HostImageCopyFlagBits
complement :: HostImageCopyFlagBits -> HostImageCopyFlagBits
$cshift :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
shift :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$crotate :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
rotate :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$czeroBits :: HostImageCopyFlagBits
zeroBits :: HostImageCopyFlagBits
$cbit :: Int -> HostImageCopyFlagBits
bit :: Int -> HostImageCopyFlagBits
$csetBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
setBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$cclearBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
clearBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$ccomplementBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
complementBit :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$ctestBit :: HostImageCopyFlagBits -> Int -> Bool
testBit :: HostImageCopyFlagBits -> Int -> Bool
$cbitSizeMaybe :: HostImageCopyFlagBits -> Maybe Int
bitSizeMaybe :: HostImageCopyFlagBits -> Maybe Int
$cbitSize :: HostImageCopyFlagBits -> Int
bitSize :: HostImageCopyFlagBits -> Int
$cisSigned :: HostImageCopyFlagBits -> Bool
isSigned :: HostImageCopyFlagBits -> Bool
$cshiftL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
shiftL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$cunsafeShiftL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
unsafeShiftL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$cshiftR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
shiftR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$cunsafeShiftR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
unsafeShiftR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$crotateL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
rotateL :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$crotateR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
rotateR :: HostImageCopyFlagBits -> Int -> HostImageCopyFlagBits
$cpopCount :: HostImageCopyFlagBits -> Int
popCount :: HostImageCopyFlagBits -> Int
Bits, Bits HostImageCopyFlagBits
Bits HostImageCopyFlagBits =>
(HostImageCopyFlagBits -> Int)
-> (HostImageCopyFlagBits -> Int)
-> (HostImageCopyFlagBits -> Int)
-> FiniteBits HostImageCopyFlagBits
HostImageCopyFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: HostImageCopyFlagBits -> Int
finiteBitSize :: HostImageCopyFlagBits -> Int
$ccountLeadingZeros :: HostImageCopyFlagBits -> Int
countLeadingZeros :: HostImageCopyFlagBits -> Int
$ccountTrailingZeros :: HostImageCopyFlagBits -> Int
countTrailingZeros :: HostImageCopyFlagBits -> Int
FiniteBits)

-- No documentation found for Nested "VkHostImageCopyFlagBits" "VK_HOST_IMAGE_COPY_MEMCPY_BIT"
pattern $mHOST_IMAGE_COPY_MEMCPY_BIT :: forall {r}.
HostImageCopyFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bHOST_IMAGE_COPY_MEMCPY_BIT :: HostImageCopyFlagBits
HOST_IMAGE_COPY_MEMCPY_BIT = HostImageCopyFlagBits 0x00000001

conNameHostImageCopyFlagBits :: String
conNameHostImageCopyFlagBits :: String
conNameHostImageCopyFlagBits = String
"HostImageCopyFlagBits"

enumPrefixHostImageCopyFlagBits :: String
enumPrefixHostImageCopyFlagBits :: String
enumPrefixHostImageCopyFlagBits = String
"HOST_IMAGE_COPY_MEMCPY_BIT"

showTableHostImageCopyFlagBits :: [(HostImageCopyFlagBits, String)]
showTableHostImageCopyFlagBits :: [(HostImageCopyFlagBits, String)]
showTableHostImageCopyFlagBits = [(HostImageCopyFlagBits
HOST_IMAGE_COPY_MEMCPY_BIT, String
"")]

instance Show HostImageCopyFlagBits where
  showsPrec :: Int -> HostImageCopyFlagBits -> ShowS
showsPrec =
    String
-> [(HostImageCopyFlagBits, String)]
-> String
-> (HostImageCopyFlagBits -> Word32)
-> (Word32 -> ShowS)
-> Int
-> HostImageCopyFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixHostImageCopyFlagBits
      [(HostImageCopyFlagBits, String)]
showTableHostImageCopyFlagBits
      String
conNameHostImageCopyFlagBits
      (\(HostImageCopyFlagBits Word32
x) -> Word32
x)
      (\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)

instance Read HostImageCopyFlagBits where
  readPrec :: ReadPrec HostImageCopyFlagBits
readPrec =
    String
-> [(HostImageCopyFlagBits, String)]
-> String
-> (Word32 -> HostImageCopyFlagBits)
-> ReadPrec HostImageCopyFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixHostImageCopyFlagBits
      [(HostImageCopyFlagBits, String)]
showTableHostImageCopyFlagBits
      String
conNameHostImageCopyFlagBits
      Word32 -> HostImageCopyFlagBits
HostImageCopyFlagBits