{-# LANGUAGE ImportQualifiedPost #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.Queue (
submit, M.waitIdle, M.Q,
Index,
module Gpu.Vulkan.Queue.Enum
) where
import Data.TypeLevel.Tuple.Uncurry
import Data.HeteroParList qualified as HeteroParList
import Data.Word
import Gpu.Vulkan.Internal
import qualified Gpu.Vulkan.Fence.Type as Fence
import Gpu.Vulkan.Queue.Middle qualified as M
import Gpu.Vulkan.Queue.Enum
submit :: SubmitInfoListToMiddle sias => M.Q ->
HeteroParList.PL (U4 SubmitInfo) sias -> Maybe (Fence.F sf) -> IO ()
submit :: forall (sias :: [(Maybe (*), [*], [*], [*])]) sf.
SubmitInfoListToMiddle sias =>
Q -> PL (U4 SubmitInfo) sias -> Maybe (F sf) -> IO ()
submit Q
q PL (U4 SubmitInfo) sias
sis Maybe (F sf)
mf =
Q -> PL SubmitInfo (MiddleNextList sias) -> Maybe F -> IO ()
forall (ns :: [Maybe (*)]).
SubmitInfoListToCore ns =>
Q -> PL SubmitInfo ns -> Maybe F -> IO ()
M.submit Q
q (PL (U4 SubmitInfo) sias -> PL SubmitInfo (MiddleNextList sias)
forall (ns3s2s4 :: [(Maybe (*), [*], [*], [*])]).
SubmitInfoListToMiddle ns3s2s4 =>
PL (U4 SubmitInfo) ns3s2s4
-> PL SubmitInfo (MiddleNextList ns3s2s4)
submitInfoListToMiddle PL (U4 SubmitInfo) sias
sis) (Maybe F -> IO ()) -> Maybe F -> IO ()
forall a b. (a -> b) -> a -> b
$ (\(Fence.F F
f) -> F
f) (F sf -> F) -> Maybe (F sf) -> Maybe F
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe (F sf)
mf
type Index = Word32