keid-core-0.1.9.0: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageGHC2021

Engine.Frame

Synopsis

Documentation

data Frame renderpass pipelines resources Source #

All the information required to render a single frame

Constructors

Frame 

Fields

Instances

Instances details
HasDescSet tag rr => HasDescSet (tag :: k) (env, Frame rp p rr) Source # 
Instance details

Defined in Engine.Vulkan.DescSets

Methods

getDescSet :: (env, Frame rp p rr) -> Tagged tag DescriptorSet Source #

HasDescSet tag rr => HasDescSet (tag :: k) (Frame rp p rr) Source # 
Instance details

Defined in Engine.Vulkan.DescSets

Methods

getDescSet :: Frame rp p rr -> Tagged tag DescriptorSet Source #

HasStateRef st (App GlobalHandles st, Frame rp p rr) Source # 
Instance details

Defined in Engine.Types

Methods

stateRefL :: Lens' (App GlobalHandles st, Frame rp p rr) (SomeRef st) #

MonadResource (RIO (env, Frame rp p rr)) Source # 
Instance details

Defined in Engine.Types

Methods

liftResourceT :: ResourceT IO a -> RIO (env, Frame rp p rr) a #

HasLogFunc env => HasLogFunc (env, Frame rp p rr) Source # 
Instance details

Defined in Engine.Types

Methods

logFuncL :: Lens' (env, Frame rp p rr) LogFunc #

HasSwapchain (Frame renderpass pipelines resources) Source # 
Instance details

Defined in Engine.Types

Methods

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 #

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

Constructors

RecycledResources 

Fields

Instances

Instances details
HasDescSet tag rr => HasDescSet (tag :: k) (RecycledResources rr) Source # 
Instance details

Defined in Engine.Vulkan.DescSets

initialRecycledResources :: (MonadResource (RIO env), HasVulkan env, HasLogFunc env) => (Queues CommandPool -> rp -> p -> ResourceT (RIO env) rr) -> rp -> p -> ResourceT (RIO env) (RecycledResources rr) Source #