Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- type MonadVulkan env m = (MonadUnliftIO m, MonadReader env m, HasVulkan env)
- class HasVulkan a where
- getInstance :: a -> Instance
- getQueues :: a -> Queues (QueueFamilyIndex, Queue)
- getPhysicalDevice :: a -> PhysicalDevice
- getPhysicalDeviceInfo :: a -> PhysicalDeviceInfo
- getDevice :: a -> Device
- getAllocator :: a -> Allocator
- getPipelineCache :: ctx -> PipelineCache
- class HasSwapchain a where
- getSurfaceExtent :: a -> Extent2D
- getSurfaceFormat :: a -> Format
- getDepthFormat :: a -> Format
- getMultisample :: a -> SampleCountFlagBits
- getAnisotropy :: a -> "max sampler anisotropy" ::: Float
- getSwapchainViews :: a -> Vector ImageView
- getMinImageCount :: a -> Word32
- getImageCount :: a -> Word32
- class HasRenderPass a where
- getFramebuffers :: a -> Vector Framebuffer
- getRenderPass :: a -> RenderPass
- getClearValues :: a -> Vector ClearValue
- getRenderArea :: a -> Rect2D
- class RenderPass a where
- updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> a -> RIO env a
- refcountRenderpass :: MonadResource (RIO env) => a -> RIO env ()
- data PhysicalDeviceInfo = PhysicalDeviceInfo {}
- data Queues q = Queues {}
- type DsLayouts = Vector DescriptorSetLayout
- type DsLayoutBindings = [(DescriptorSetLayoutBinding, DescriptorBindingFlags)]
- newtype Bound (dsl :: [Type]) vertices instances m a = Bound (m a)
Documentation
type MonadVulkan env m = (MonadUnliftIO m, MonadReader env m, HasVulkan env) Source #
class HasVulkan a where Source #
A class for Monads which can provide some Vulkan handles
getInstance :: a -> Instance Source #
getQueues :: a -> Queues (QueueFamilyIndex, Queue) Source #
getPhysicalDevice :: a -> PhysicalDevice Source #
getPhysicalDeviceInfo :: a -> PhysicalDeviceInfo Source #
getDevice :: a -> Device Source #
getAllocator :: a -> Allocator Source #
Instances
getPipelineCache :: ctx -> PipelineCache Source #
class HasSwapchain a where Source #
getSurfaceExtent :: a -> Extent2D Source #
getSurfaceFormat :: a -> Format Source #
getDepthFormat :: a -> Format Source #
getMultisample :: a -> SampleCountFlagBits Source #
getAnisotropy :: a -> "max sampler anisotropy" ::: Float Source #
getSwapchainViews :: a -> Vector ImageView Source #
getMinImageCount :: a -> Word32 Source #
getImageCount :: a -> Word32 Source #
Instances
class HasRenderPass a where Source #
getFramebuffers :: a -> Vector Framebuffer Source #
getRenderPass :: a -> RenderPass Source #
getClearValues :: a -> Vector ClearValue Source #
getRenderArea :: a -> Rect2D Source #
Instances
HasRenderPass Offscreen Source # | |
Defined in Render.Pass.Offscreen getFramebuffers :: Offscreen -> Vector Framebuffer Source # getRenderPass :: Offscreen -> RenderPass Source # getClearValues :: Offscreen -> Vector ClearValue Source # getRenderArea :: Offscreen -> Rect2D Source # |
class RenderPass a where Source #
updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> a -> RIO env a Source #
refcountRenderpass :: MonadResource (RIO env) => a -> RIO env () Source #
Instances
RenderPass NoRenderPass Source # | |
Defined in Engine.Stage.Component updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> NoRenderPass -> RIO env NoRenderPass Source # refcountRenderpass :: MonadResource (RIO env) => NoRenderPass -> RIO env () Source # | |
RenderPass Offscreen Source # | |
Defined in Render.Pass.Offscreen updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> Offscreen -> RIO env Offscreen Source # refcountRenderpass :: MonadResource (RIO env) => Offscreen -> RIO env () Source # |
data PhysicalDeviceInfo Source #
The shape of all the queues we use for our program, parameterized over the
queue type so we can use it with assignQueues
.
Instances
Foldable Queues Source # | |
Defined in Engine.Vulkan.Types fold :: Monoid m => Queues m -> m # foldMap :: Monoid m => (a -> m) -> Queues a -> m # foldMap' :: Monoid m => (a -> m) -> Queues a -> m # foldr :: (a -> b -> b) -> b -> Queues a -> b # foldr' :: (a -> b -> b) -> b -> Queues a -> b # foldl :: (b -> a -> b) -> b -> Queues a -> b # foldl' :: (b -> a -> b) -> b -> Queues a -> b # foldr1 :: (a -> a -> a) -> Queues a -> a # foldl1 :: (a -> a -> a) -> Queues a -> a # elem :: Eq a => a -> Queues a -> Bool # maximum :: Ord a => Queues a -> a # minimum :: Ord a => Queues a -> a # | |
Traversable Queues Source # | |
Functor Queues Source # | |
Show q => Show (Queues q) Source # | |
type DsLayouts = Vector DescriptorSetLayout Source #
newtype Bound (dsl :: [Type]) vertices instances m a Source #
Bound (m a) |
Instances
MonadReader r m => MonadReader r (Bound dsl vertices instances m) Source # | |
MonadState s m => MonadState s (Bound dsl vertices instances m) Source # | |
MonadIO m => MonadIO (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types | |
Foldable m => Foldable (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types fold :: Monoid m0 => Bound dsl vertices instances m m0 -> m0 # foldMap :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 # foldMap' :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 # foldr :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b # foldr' :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b # foldl :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b # foldl' :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b # foldr1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a # foldl1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a # toList :: Bound dsl vertices instances m a -> [a] # null :: Bound dsl vertices instances m a -> Bool # length :: Bound dsl vertices instances m a -> Int # elem :: Eq a => a -> Bound dsl vertices instances m a -> Bool # maximum :: Ord a => Bound dsl vertices instances m a -> a # minimum :: Ord a => Bound dsl vertices instances m a -> a # | |
Traversable m => Traversable (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types traverse :: Applicative f => (a -> f b) -> Bound dsl vertices instances m a -> f (Bound dsl vertices instances m b) # sequenceA :: Applicative f => Bound dsl vertices instances m (f a) -> f (Bound dsl vertices instances m a) # mapM :: Monad m0 => (a -> m0 b) -> Bound dsl vertices instances m a -> m0 (Bound dsl vertices instances m b) # sequence :: Monad m0 => Bound dsl vertices instances m (m0 a) -> m0 (Bound dsl vertices instances m a) # | |
Applicative m => Applicative (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types pure :: a -> Bound dsl vertices instances m a # (<*>) :: Bound dsl vertices instances m (a -> b) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b # liftA2 :: (a -> b -> c) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m c # (*>) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m b # (<*) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m a # | |
Functor m => Functor (Bound dsl vertices instances m) Source # | |
Monad m => Monad (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types | |
MonadUnliftIO m => MonadUnliftIO (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types |