module Engine.Stage.Bootstrap.Types
  ( Stage

  , NoRendering(..)
  , NoPipelines(..)
  , NoResources(..)
  , NoState(..)
  ) where

import RIO

import Engine.Vulkan.Types (RenderPass(..))
import Engine.Types qualified as Engine

data NoRendering = NoRendering

instance RenderPass NoRendering where
  updateRenderpass :: forall env swapchain.
(HasLogFunc env, HasSwapchain swapchain, HasVulkan env,
 MonadResource (RIO env)) =>
swapchain -> NoRendering -> RIO env NoRendering
updateRenderpass swapchain
_context = NoRendering -> RIO env NoRendering
forall (f :: * -> *) a. Applicative f => a -> f a
pure
  refcountRenderpass :: forall env. MonadResource (RIO env) => NoRendering -> RIO env ()
refcountRenderpass NoRendering
_rp = () -> RIO env ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

data NoPipelines = NoPipelines

type Stage = Engine.Stage NoRendering NoPipelines NoResources NoState

data NoResources = NoResources

data NoState = NoState