Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data GlobalHandles = GlobalHandles {
- ghOptions :: Options
- ghWindow :: Window
- ghSurface :: SurfaceKHR
- ghInstance :: Instance
- ghPhysicalDevice :: PhysicalDevice
- ghPhysicalDeviceInfo :: PhysicalDeviceInfo
- ghDevice :: Device
- ghAllocator :: Allocator
- ghQueues :: Queues (QueueFamilyIndex, Queue)
- ghScreenVar :: Var Extent2D
- ghStageSwitch :: StageSwitchVar
- askScreenVar :: MonadReader (App GlobalHandles st) m => m (Var Extent2D)
- type StageStack = [StackStage]
- data NextStage
- data StackStage where
- 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
- type StageSwitchVar = TMVar StageSwitch
- data StageSwitch
- type StageRIO st = RIO (App GlobalHandles st)
- type StageSetupRIO = RIO (App GlobalHandles (Maybe SwapchainResources))
- type StageFrameRIO rp p rr st = RIO (App GlobalHandles st, Frame rp p rr)
- data Stage rp p rr st = forall a.Stage {
- sTitle :: Text
- sAllocateRP :: SwapchainResources -> ResourceT (StageRIO st) rp
- sAllocateP :: SwapchainResources -> rp -> ResourceT (StageRIO st) p
- sInitialRS :: StageRIO (Maybe SwapchainResources) (ReleaseKey, st)
- sInitialRR :: Queues CommandPool -> rp -> p -> ResourceT (StageRIO st) rr
- sBeforeLoop :: StageRIO st a
- sUpdateBuffers :: st -> rr -> StageFrameRIO rp p rr st ()
- sRecordCommands :: CommandBuffer -> rr -> ("image index" ::: Word32) -> StageFrameRIO rp p rr st ()
- sAfterLoop :: a -> StageRIO st ()
- 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
- type GPUWork = ("host semaphore" ::: Semaphore, "frame index" ::: Word64)
- data RecycledResources a = RecycledResources {}
- type family HKD f a where ...
App globals
data GlobalHandles Source #
A bunch of global, unchanging state we cart around
Instances
HasVulkan GlobalHandles Source # | |
Defined in Engine.Types | |
HasStateRef st (App GlobalHandles st, Frame rp p rr) Source # | |
Defined in Engine.Types |
askScreenVar :: MonadReader (App GlobalHandles st) m => m (Var Extent2D) Source #
Stage stack
type StageStack = [StackStage] Source #
data StackStage where Source #
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 |
type StageSwitchVar = TMVar StageSwitch Source #
Stage on a stack
type StageSetupRIO = RIO (App GlobalHandles (Maybe SwapchainResources)) Source #
type StageFrameRIO rp p rr st = RIO (App GlobalHandles st, Frame rp p rr) Source #
data Stage rp p rr st Source #
forall a. Stage | |
|
Frame loop inside a stage
data Frame renderpass pipelines resources Source #
All the information required to render a single frame
Frame | |
|
Instances
HasDescSet tag rr => HasDescSet tag (env, Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: (env, Frame rp p rr) -> Tagged tag DescriptorSet Source # | |
HasStateRef st (App GlobalHandles st, Frame rp p rr) Source # | |
Defined in Engine.Types | |
HasDescSet tag rr => HasDescSet tag (Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: Frame rp p rr -> Tagged tag DescriptorSet Source # | |
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 # |
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 (RecycledResources rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: RecycledResources rr -> Tagged tag DescriptorSet Source # |