keid-render-basic-0.1.8.0: Basic rendering programs for Keid engine.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Render.Unlit.Line2d.Model

Synopsis

Documentation

type Segment = Allocated 'Staged Packed Source #

type Vertex = Vertex3d () Source #

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.

point :: Float -> Vec4 -> Vec2 -> InstanceAttrs Source #

data InstanceAttrs Source #

Constructors

InstanceAttrs 

Fields

Instances

Instances details
Generic InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Associated Types

type Rep InstanceAttrs :: Type -> Type Source #

Show InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

GStorable InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Eq InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

HasVkFormat InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

getVkFormat :: [Format]

HasVertexInputBindings InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

vertexInputBindings :: [VertexInputBinding]

type Rep InstanceAttrs Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

type Rep InstanceAttrs = D1 ('MetaData "InstanceAttrs" "Render.Unlit.Line2d.Model" "keid-render-basic-0.1.8.0-inplace" 'False) (C1 ('MetaCons "InstanceAttrs" 'PrefixI 'True) (S1 ('MetaSel ('Just "color") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Vec4) :*: (S1 ('MetaSel ('Just "position") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Packed) :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Float))))
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.Line2d.Pipeline

type Specialization Pipeline = ()

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 () #

newtype Batches v a Source #

Constructors

Batches [v a] 

Instances

Instances details
Foldable v => Foldable (Batches v) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

fold :: Monoid m => Batches v m -> m Source #

foldMap :: Monoid m => (a -> m) -> Batches v a -> m Source #

foldMap' :: Monoid m => (a -> m) -> Batches v a -> m Source #

foldr :: (a -> b -> b) -> b -> Batches v a -> b Source #

foldr' :: (a -> b -> b) -> b -> Batches v a -> b Source #

foldl :: (b -> a -> b) -> b -> Batches v a -> b Source #

foldl' :: (b -> a -> b) -> b -> Batches v a -> b Source #

foldr1 :: (a -> a -> a) -> Batches v a -> a Source #

foldl1 :: (a -> a -> a) -> Batches v a -> a Source #

toList :: Batches v a -> [a] Source #

null :: Batches v a -> Bool Source #

length :: Batches v a -> Int Source #

elem :: Eq a => a -> Batches v a -> Bool Source #

maximum :: Ord a => Batches v a -> a Source #

minimum :: Ord a => Batches v a -> a Source #

sum :: Num a => Batches v a -> a Source #

product :: Num a => Batches v a -> a Source #

Traversable v => Traversable (Batches v) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

traverse :: Applicative f => (a -> f b) -> Batches v a -> f (Batches v b) Source #

sequenceA :: Applicative f => Batches v (f a) -> f (Batches v a) Source #

mapM :: Monad m => (a -> m b) -> Batches v a -> m (Batches v b) Source #

sequence :: Monad m => Batches v (m a) -> m (Batches v a) Source #

Functor v => Functor (Batches v) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

fmap :: (a -> b) -> Batches v a -> Batches v b Source #

(<$) :: a -> Batches v b -> Batches v a Source #

Monoid (Batches v a) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

mempty :: Batches v a Source #

mappend :: Batches v a -> Batches v a -> Batches v a Source #

mconcat :: [Batches v a] -> Batches v a Source #

Semigroup (Batches v a) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

(<>) :: Batches v a -> Batches v a -> Batches v a Source #

sconcat :: NonEmpty (Batches v a) -> Batches v a Source #

stimes :: Integral b => b -> Batches v a -> Batches v a Source #

Show (v a) => Show (Batches v a) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

showsPrec :: Int -> Batches v a -> ShowS Source #

show :: Batches v a -> String Source #

showList :: [Batches v a] -> ShowS Source #

Eq (v a) => Eq (Batches v a) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

(==) :: Batches v a -> Batches v a -> Bool Source #

(/=) :: Batches v a -> Batches v a -> Bool Source #

Ord (v a) => Ord (Batches v a) Source # 
Instance details

Defined in Render.Unlit.Line2d.Model

Methods

compare :: Batches v a -> Batches v a -> Ordering Source #

(<) :: Batches v a -> Batches v a -> Bool Source #

(<=) :: Batches v a -> Batches v a -> Bool Source #

(>) :: Batches v a -> Batches v a -> Bool Source #

(>=) :: Batches v a -> Batches v a -> Bool Source #

max :: Batches v a -> Batches v a -> Batches v a Source #

min :: Batches v a -> Batches v a -> Batches v a Source #

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 #