Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- type Segment = Allocated 'Staged Packed
- type Vertex = Vertex3d ()
- createVertices :: MonadVulkan env m => Maybe Text -> Queues CommandPool -> Float -> m Segment
- verticesRoundRound :: Float -> Vector Packed
- type Points = Vector InstanceAttrs
- point :: Float -> Vec4 -> Vec2 -> InstanceAttrs
- data InstanceAttrs = InstanceAttrs {}
- type Buffer s = Allocated s InstanceAttrs
- type Observer = ObserverCoherent InstanceAttrs
- observeCoherentResize_ :: (MonadVulkan env m, HasOutput source, GetOutput source ~ Vector output, Storable output) => source -> ObserverCoherent output -> m ()
- newtype Batches v a = Batches [v a]
- type BatchObserver = ObserverIO (Buffer 'Coherent, Ranges)
- newBatchObserver :: (MonadVulkan env m, MonadResource m) => ("initial size" ::: Int) -> m BatchObserver
- observeCoherentBatches :: (GetOutput output ~ Batches Vector InstanceAttrs, HasOutput output, MonadVulkan env m) => output -> BatchObserver -> m ()
Documentation
createVertices :: MonadVulkan env m => Maybe Text -> Queues CommandPool -> Float -> m Segment Source #
verticesRoundRound :: Float -> Vector Packed Source #
Generate mesh for the round joints / round caps special case.
With a bit of vertex shader code it allows drawing a batch of smooth lines in one call.
type Points = Vector InstanceAttrs Source #
data InstanceAttrs Source #
Instances
type Buffer s = Allocated s InstanceAttrs Source #
type Observer = ObserverCoherent InstanceAttrs Source #
observeCoherentResize_ :: (MonadVulkan env m, HasOutput source, GetOutput source ~ Vector output, Storable output) => source -> ObserverCoherent output -> m () #
Batches [v a] |
Instances
Foldable v => Foldable (Batches v) Source # | |
Defined in Render.Unlit.Line2d.Model fold :: Monoid m => Batches v m -> m # foldMap :: Monoid m => (a -> m) -> Batches v a -> m # foldMap' :: Monoid m => (a -> m) -> Batches v a -> m # foldr :: (a -> b -> b) -> b -> Batches v a -> b # foldr' :: (a -> b -> b) -> b -> Batches v a -> b # foldl :: (b -> a -> b) -> b -> Batches v a -> b # foldl' :: (b -> a -> b) -> b -> Batches v a -> b # foldr1 :: (a -> a -> a) -> Batches v a -> a # foldl1 :: (a -> a -> a) -> Batches v a -> a # toList :: Batches v a -> [a] # length :: Batches v a -> Int # elem :: Eq a => a -> Batches v a -> Bool # maximum :: Ord a => Batches v a -> a # minimum :: Ord a => Batches v a -> a # | |
Traversable v => Traversable (Batches v) Source # | |
Defined in Render.Unlit.Line2d.Model | |
Functor v => Functor (Batches v) Source # | |
Monoid (Batches v a) Source # | |
Semigroup (Batches v a) Source # | |
Show (v a) => Show (Batches v a) Source # | |
Eq (v a) => Eq (Batches v a) Source # | |
Ord (v a) => Ord (Batches v a) Source # | |
Defined in Render.Unlit.Line2d.Model |
type BatchObserver = ObserverIO (Buffer 'Coherent, Ranges) Source #
newBatchObserver :: (MonadVulkan env m, MonadResource m) => ("initial size" ::: Int) -> m BatchObserver Source #
observeCoherentBatches :: (GetOutput output ~ Batches Vector InstanceAttrs, HasOutput output, MonadVulkan env m) => output -> BatchObserver -> m () Source #