keid-core-0.1.7.1: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Engine.Types

Synopsis

App globals

data GlobalHandles Source #

A bunch of global, unchanging state we cart around

Constructors

GlobalHandles 

Fields

Instances

Instances details
HasVulkan GlobalHandles Source # 
Instance details

Defined in Engine.Types

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)

askScreenVar :: StageRIO env (Var Extent2D) Source #

Stage stack

data StackStage where Source #

Constructors

StackStage :: forall rp p rr st. RenderPass rp => Stage rp p rr st -> StackStage 
StackStageContinue :: forall rp p rr st. RenderPass rp => ReleaseKey -> st -> Stage rp p rr st -> StackStage 

Stage on a stack

type StageRIO st = RIO (App GlobalHandles st) Source #

type StageFrameRIO rp p rr st = RIO (App GlobalHandles st, Frame rp p rr) Source #

data Stage rp p rr st Source #

Constructors

forall a. Stage 

Fields

Frame loop inside a stage

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 (env, Frame rp p rr) Source # 
Instance details

Defined in Engine.Vulkan.DescSets

Methods

getDescSet :: (env, 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)

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

Defined in Engine.Vulkan.DescSets

Methods

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

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

type GPUWork = ("host semaphore" ::: Semaphore, "frame index" ::: Word64) Source #

data RecycledResources a Source #

These are resources which are reused by a later frame when the current frame is retired

Constructors

RecycledResources 

Fields

  • rrImageAvailableSemaphore :: Semaphore

    A binary semaphore passed to acquireNextImageKHR

  • rrRenderFinishedSemaphore :: Semaphore

    A binary semaphore to synchronize rendering and presenting

  • rrQueues :: Queues CommandPool

    Pool for this frame's commands for each of the queue families. (might want more than one of these for multithreaded recording)

  • rrData :: a
     

Instances

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

Defined in Engine.Vulkan.DescSets

Methods

getDescSet :: RecycledResources rr -> Tagged tag DescriptorSet Source #