{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_texture_compression_astc_3d ( PhysicalDeviceTextureCompressionASTC3DFeaturesEXT(..)
, EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION
, pattern EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION
, EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME
, pattern EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT))
data PhysicalDeviceTextureCompressionASTC3DFeaturesEXT = PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
{
PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
textureCompressionASTC_3D :: Bool }
deriving (Typeable, PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
(PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool)
-> (PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool)
-> Eq PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
== :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
$c/= :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
/= :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceTextureCompressionASTC3DFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
instance ToCStruct PhysicalDeviceTextureCompressionASTC3DFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> (Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
x Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p -> Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO b
-> IO b
forall b.
Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
x (Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO b
f Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p PhysicalDeviceTextureCompressionASTC3DFeaturesEXT{Bool
textureCompressionASTC_3D :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Bool
textureCompressionASTC_3D :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
textureCompressionASTC_3D))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceTextureCompressionASTC3DFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
peekCStruct Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p = do
textureCompressionASTC_3D <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
p Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
(bool32ToBool textureCompressionASTC_3D)
instance Storable PhysicalDeviceTextureCompressionASTC3DFeaturesEXT where
sizeOf :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Int
sizeOf ~PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> Int
alignment ~PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
peek = Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
poked = Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
ptr PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceTextureCompressionASTC3DFeaturesEXT where
zero :: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
zero = Bool -> PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
PhysicalDeviceTextureCompressionASTC3DFeaturesEXT
Bool
forall a. Zero a => a
zero
type EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION = 1
pattern EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION :: forall a . Integral a => a
pattern $mEXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION :: forall a. Integral a => a
EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION = 1
type EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME = "VK_EXT_texture_compression_astc_3d"
pattern EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mEXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME = "VK_EXT_texture_compression_astc_3d"