{-# LINE 1 "src/Gpu/Vulkan/Descriptor/Middle/Internal.hsc" #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables, TypeApplications #-} {-# LANGUAGE MonoLocalBinds #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Gpu.Vulkan.Descriptor.Middle.Internal ( indexingExtensionName, ImageInfo(..), imageInfoToCore, BufferInfo(..), bufferInfoToCore ) where import Control.Monad.Trans import qualified Gpu.Vulkan.Device.Middle.Internal as Device import qualified Gpu.Vulkan.Buffer.Middle.Internal as Buffer import qualified Gpu.Vulkan.Image.Enum as Image import qualified Gpu.Vulkan.ImageView.Middle.Internal as ImageView import qualified Gpu.Vulkan.Sampler.Middle.Internal as Sampler import qualified Gpu.Vulkan.Descriptor.Core as C import Data.Text qualified as T indexingExtensionName :: T.Text indexingExtensionName :: Text indexingExtensionName = Text "VK_EXT_descriptor_indexing" {-# LINE 27 "src/Gpu/Vulkan/Descriptor/Middle/Internal.hsc" #-} data BufferInfo = BufferInfo { BufferInfo -> B bufferInfoBuffer :: Buffer.B, BufferInfo -> Size bufferInfoOffset :: Device.Size, BufferInfo -> Size bufferInfoRange :: Device.Size } deriving Int -> BufferInfo -> ShowS [BufferInfo] -> ShowS BufferInfo -> String (Int -> BufferInfo -> ShowS) -> (BufferInfo -> String) -> ([BufferInfo] -> ShowS) -> Show BufferInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> BufferInfo -> ShowS showsPrec :: Int -> BufferInfo -> ShowS $cshow :: BufferInfo -> String show :: BufferInfo -> String $cshowList :: [BufferInfo] -> ShowS showList :: [BufferInfo] -> ShowS Show bufferInfoToCore :: BufferInfo -> C.BufferInfo bufferInfoToCore :: BufferInfo -> BufferInfo bufferInfoToCore BufferInfo { bufferInfoBuffer :: BufferInfo -> B bufferInfoBuffer = Buffer.B B b, bufferInfoOffset :: BufferInfo -> Size bufferInfoOffset = Device.Size Word64 os, bufferInfoRange :: BufferInfo -> Size bufferInfoRange = Device.Size Word64 rg } = C.BufferInfo { bufferInfoBuffer :: B C.bufferInfoBuffer = B b, bufferInfoOffset :: Word64 C.bufferInfoOffset = Word64 os, bufferInfoRange :: Word64 C.bufferInfoRange = Word64 rg } data ImageInfo = ImageInfo { ImageInfo -> S imageInfoSampler :: Sampler.S, ImageInfo -> I imageInfoImageView :: ImageView.I, ImageInfo -> Layout imageInfoImageLayout :: Image.Layout } deriving Int -> ImageInfo -> ShowS [ImageInfo] -> ShowS ImageInfo -> String (Int -> ImageInfo -> ShowS) -> (ImageInfo -> String) -> ([ImageInfo] -> ShowS) -> Show ImageInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ImageInfo -> ShowS showsPrec :: Int -> ImageInfo -> ShowS $cshow :: ImageInfo -> String show :: ImageInfo -> String $cshowList :: [ImageInfo] -> ShowS showList :: [ImageInfo] -> ShowS Show imageInfoToCore :: ImageInfo -> IO C.ImageInfo imageInfoToCore :: ImageInfo -> IO ImageInfo imageInfoToCore ImageInfo { imageInfoSampler :: ImageInfo -> S imageInfoSampler = Sampler.S S s, imageInfoImageView :: ImageInfo -> I imageInfoImageView = I iv, imageInfoImageLayout :: ImageInfo -> Layout imageInfoImageLayout = Image.Layout Word32 l } = do I iv' <- I -> IO I ImageView.iToCore I iv ImageInfo -> IO ImageInfo forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure C.ImageInfo { imageInfoSampler :: S C.imageInfoSampler = S s, imageInfoImageView :: I C.imageInfoImageView = I iv', imageInfoImageLayout :: Word32 C.imageInfoImageLayout = Word32 l }