{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Strict #-}
module Graphics.Vulkan.Types.Defines
(
VK_API_VERSION_1_0, pattern VK_API_VERSION_1_0,
VK_API_VERSION_1_1, pattern VK_API_VERSION_1_1, VK_API_VERSION_1_2,
pattern VK_API_VERSION_1_2, Ptr(),
VkPtr(..),
VK_HEADER_VERSION,
pattern VK_HEADER_VERSION, _VK_HEADER_VERSION_COMPLETE,
_VK_MAKE_VERSION, VulkanPtr(..), pattern VK_NULL_HANDLE,
_VK_VERSION_MAJOR, _VK_VERSION_MINOR, _VK_VERSION_PATCH)
where
import Data.Bits (Bits (..))
import Graphics.Vulkan.Marshal
pattern VK_API_VERSION_1_0 :: (Num a, Eq a) => a
pattern $bVK_API_VERSION_1_0 :: forall a. (Num a, Eq a) => a
$mVK_API_VERSION_1_0 :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_API_VERSION_1_0 = 4194304
type VK_API_VERSION_1_0 = 4194304
pattern VK_API_VERSION_1_1 :: (Num a, Eq a) => a
pattern $bVK_API_VERSION_1_1 :: forall a. (Num a, Eq a) => a
$mVK_API_VERSION_1_1 :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_API_VERSION_1_1 = 4198400
type VK_API_VERSION_1_1 = 4198400
pattern VK_API_VERSION_1_2 :: (Num a, Eq a) => a
pattern $bVK_API_VERSION_1_2 :: forall a. (Num a, Eq a) => a
$mVK_API_VERSION_1_2 :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_API_VERSION_1_2 = 4202496
type VK_API_VERSION_1_2 = 4202496
pattern VK_HEADER_VERSION :: (Num a, Eq a) => a
pattern = 152
type = 152
_VK_HEADER_VERSION_COMPLETE :: (Bits a, Num a) => a
= a -> a -> a -> a
forall a. Bits a => a -> a -> a -> a
_VK_MAKE_VERSION a
1 a
2 a
forall a. (Num a, Eq a) => a
VK_HEADER_VERSION
{-# INLINE _VK_HEADER_VERSION_COMPLETE #-}
#define VK_HEADER_VERSION_COMPLETE _VK_HEADER_VERSION_COMPLETE
_VK_MAKE_VERSION :: Bits a => a -> a -> a -> a
_VK_MAKE_VERSION :: forall a. Bits a => a -> a -> a -> a
_VK_MAKE_VERSION a
major a
minor a
patch
= a -> Int -> a
forall a. Bits a => a -> Int -> a
unsafeShiftL a
major Int
22 a -> a -> a
forall a. Bits a => a -> a -> a
.|. a -> Int -> a
forall a. Bits a => a -> Int -> a
unsafeShiftL a
minor Int
12 a -> a -> a
forall a. Bits a => a -> a -> a
.|. a
patch
{-# INLINE _VK_MAKE_VERSION #-}
#define VK_MAKE_VERSION(major, minor, patch) _VK_MAKE_VERSION major minor patch
_VK_VERSION_MAJOR :: Bits a => a -> a
_VK_VERSION_MAJOR :: forall a. Bits a => a -> a
_VK_VERSION_MAJOR a
version = a -> Int -> a
forall a. Bits a => a -> Int -> a
unsafeShiftR a
version Int
22
{-# INLINE _VK_VERSION_MAJOR #-}
#define VK_VERSION_MAJOR(version) _VK_VERSION_MAJOR version
_VK_VERSION_MINOR :: (Bits a, Num a) => a -> a
_VK_VERSION_MINOR :: forall a. (Bits a, Num a) => a -> a
_VK_VERSION_MINOR a
version = a -> Int -> a
forall a. Bits a => a -> Int -> a
unsafeShiftR a
version Int
12 a -> a -> a
forall a. Bits a => a -> a -> a
.&. a
1023
{-# INLINE _VK_VERSION_MINOR #-}
#define VK_VERSION_MINOR(version) _VK_VERSION_MINOR version
_VK_VERSION_PATCH :: (Bits a, Num a) => a -> a
_VK_VERSION_PATCH :: forall a. (Bits a, Num a) => a -> a
_VK_VERSION_PATCH = (a -> a -> a
forall a. Bits a => a -> a -> a
.&. a
4095)
{-# INLINE _VK_VERSION_PATCH #-}