Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data Frame renderpass pipelines resources = Frame {
- fIndex :: Word64
- fWindow :: Window
- fSurface :: SurfaceKHR
- fPresent :: Maybe PresentModeKHR
- fMSAA :: SampleCountFlagBits
- fSwapchainResources :: SwapchainResources
- fRenderpass :: renderpass
- fPipelines :: pipelines
- fRenderFinishedHostSemaphore :: Semaphore
- fStageResources :: (RefCounted, InternalState)
- fGPUWork :: IORef [GPUWork]
- fResources :: (ReleaseKey, InternalState)
- fRecycledResources :: RecycledResources resources
- initial :: Maybe SwapchainResources -> DumpResource (RecycledResources rr) -> Stage rp p rr st -> StageRIO st (Frame rp p rr)
- run :: (HasLogFunc env, HasVulkan env, MonadResource (RIO env)) => (RecycledResources rr -> IO ()) -> Maybe Int -> RIO (env, Frame rp p rr) a -> Frame rp p rr -> RIO env a
- advance :: (HasLogFunc env, HasVulkan env, MonadResource (RIO env), RenderPass rp) => WaitResource (RecycledResources rr) -> Frame rp p rr -> Bool -> RIO env (Frame rp p rr)
- queueSubmit :: MonadVulkan env m => Queue -> Vector (SomeStruct SubmitInfo) -> IORef [GPUWork] -> Semaphore -> Word64 -> m ()
- data RecycledResources a = RecycledResources {}
- initialRecycledResources :: (MonadResource (RIO env), HasVulkan env, HasLogFunc env) => (Queues CommandPool -> rp -> p -> ResourceT (RIO env) rr) -> rp -> p -> ResourceT (RIO env) (RecycledResources rr)
- timeoutError :: MonadThrow m => String -> m a
Documentation
data Frame renderpass pipelines resources Source #
All the information required to render a single frame
Frame | |
|
Instances
HasDescSet tag rr => HasDescSet (tag :: k) (env, Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: (env, Frame rp p rr) -> Tagged tag DescriptorSet Source # | |
HasDescSet tag rr => HasDescSet (tag :: k) (Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: Frame rp p rr -> Tagged tag DescriptorSet Source # | |
HasStateRef st (App GlobalHandles st, Frame rp p rr) Source # | |
Defined in Engine.Types | |
MonadResource (RIO (env, Frame rp p rr)) Source # | |
Defined in Engine.Types | |
HasLogFunc env => HasLogFunc (env, Frame rp p rr) Source # | |
HasSwapchain (Frame renderpass pipelines resources) Source # | |
Defined in Engine.Types getSurfaceExtent :: Frame renderpass pipelines resources -> Extent2D Source # getSurfaceFormat :: Frame renderpass pipelines resources -> Format Source # getDepthFormat :: Frame renderpass pipelines resources -> Format Source # getMultisample :: Frame renderpass pipelines resources -> SampleCountFlagBits Source # getAnisotropy :: Frame renderpass pipelines resources -> "max sampler anisotropy" ::: Float Source # getSwapchainViews :: Frame renderpass pipelines resources -> Vector ImageView Source # getMinImageCount :: Frame renderpass pipelines resources -> Word32 Source # getImageCount :: Frame renderpass pipelines resources -> Word32 Source # |
initial :: Maybe SwapchainResources -> DumpResource (RecycledResources rr) -> Stage rp p rr st -> StageRIO st (Frame rp p rr) Source #
run :: (HasLogFunc env, HasVulkan env, MonadResource (RIO env)) => (RecycledResources rr -> IO ()) -> Maybe Int -> RIO (env, Frame rp p rr) a -> Frame rp p rr -> RIO env a Source #
advance :: (HasLogFunc env, HasVulkan env, MonadResource (RIO env), RenderPass rp) => WaitResource (RecycledResources rr) -> Frame rp p rr -> Bool -> RIO env (Frame rp p rr) Source #
Derive next frame
queueSubmit :: MonadVulkan env m => Queue -> Vector (SomeStruct SubmitInfo) -> IORef [GPUWork] -> Semaphore -> Word64 -> m () Source #
queueSubmit
and add wait for the timeline Semaphore
before retiring the frame.
data RecycledResources a Source #
These are resources which are reused by a later frame when the current frame is retired
RecycledResources | |
|
Instances
HasDescSet tag rr => HasDescSet (tag :: k) (RecycledResources rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: RecycledResources rr -> Tagged tag DescriptorSet Source # |
initialRecycledResources :: (MonadResource (RIO env), HasVulkan env, HasLogFunc env) => (Queues CommandPool -> rp -> p -> ResourceT (RIO env) rr) -> rp -> p -> ResourceT (RIO env) (RecycledResources rr) Source #
timeoutError :: MonadThrow m => String -> m a Source #