keid-core-0.1.4.0: Core parts of Keid engine.
Safe HaskellNone
LanguageHaskell2010

Resource.Model

Documentation

data Indexed storage pos attrs Source #

Constructors

Indexed 

Fields

Instances

Instances details
Show (Indexed storage pos attrs) Source # 
Instance details

Defined in Resource.Model

Methods

showsPrec :: Int -> Indexed storage pos attrs -> ShowS #

show :: Indexed storage pos attrs -> String #

showList :: [Indexed storage pos attrs] -> ShowS #

data Vertex pos attrs Source #

Constructors

Vertex 

Fields

Instances

Instances details
Functor (Vertex pos) Source # 
Instance details

Defined in Resource.Model

Methods

fmap :: (a -> b) -> Vertex pos a -> Vertex pos b #

(<$) :: a -> Vertex pos b -> Vertex pos a #

Foldable (Vertex pos) Source # 
Instance details

Defined in Resource.Model

Methods

fold :: Monoid m => Vertex pos m -> m #

foldMap :: Monoid m => (a -> m) -> Vertex pos a -> m #

foldMap' :: Monoid m => (a -> m) -> Vertex pos a -> m #

foldr :: (a -> b -> b) -> b -> Vertex pos a -> b #

foldr' :: (a -> b -> b) -> b -> Vertex pos a -> b #

foldl :: (b -> a -> b) -> b -> Vertex pos a -> b #

foldl' :: (b -> a -> b) -> b -> Vertex pos a -> b #

foldr1 :: (a -> a -> a) -> Vertex pos a -> a #

foldl1 :: (a -> a -> a) -> Vertex pos a -> a #

toList :: Vertex pos a -> [a] #

null :: Vertex pos a -> Bool #

length :: Vertex pos a -> Int #

elem :: Eq a => a -> Vertex pos a -> Bool #

maximum :: Ord a => Vertex pos a -> a #

minimum :: Ord a => Vertex pos a -> a #

sum :: Num a => Vertex pos a -> a #

product :: Num a => Vertex pos a -> a #

Traversable (Vertex pos) Source # 
Instance details

Defined in Resource.Model

Methods

traverse :: Applicative f => (a -> f b) -> Vertex pos a -> f (Vertex pos b) #

sequenceA :: Applicative f => Vertex pos (f a) -> f (Vertex pos a) #

mapM :: Monad m => (a -> m b) -> Vertex pos a -> m (Vertex pos b) #

sequence :: Monad m => Vertex pos (m a) -> m (Vertex pos a) #

(Eq pos, Eq attrs) => Eq (Vertex pos attrs) Source # 
Instance details

Defined in Resource.Model

Methods

(==) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

(/=) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

(Ord pos, Ord attrs) => Ord (Vertex pos attrs) Source # 
Instance details

Defined in Resource.Model

Methods

compare :: Vertex pos attrs -> Vertex pos attrs -> Ordering #

(<) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

(<=) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

(>) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

(>=) :: Vertex pos attrs -> Vertex pos attrs -> Bool #

max :: Vertex pos attrs -> Vertex pos attrs -> Vertex pos attrs #

min :: Vertex pos attrs -> Vertex pos attrs -> Vertex pos attrs #

(Show pos, Show attrs) => Show (Vertex pos attrs) Source # 
Instance details

Defined in Resource.Model

Methods

showsPrec :: Int -> Vertex pos attrs -> ShowS #

show :: Vertex pos attrs -> String #

showList :: [Vertex pos attrs] -> ShowS #

vertexAttrs :: (pos -> a -> b) -> [Vertex pos a] -> [Vertex pos b] Source #

vertexAttrsPos :: (pos -> a) -> [pos] -> [Vertex pos a] Source #

class HasVertexBuffers a where Source #

Associated Types

type VertexBuffersOf a Source #

Methods

getVertexBuffers :: a -> [Buffer] Source #

getInstanceCount :: a -> Word32 Source #

Instances

Instances details
HasVertexBuffers () Source # 
Instance details

Defined in Resource.Model

Associated Types

type VertexBuffersOf () Source #

Methods

getVertexBuffers :: () -> [Buffer] Source #

getInstanceCount :: () -> Word32 Source #

HasVertexBuffers (Allocated store a) Source # 
Instance details

Defined in Resource.Model

Associated Types

type VertexBuffersOf (Allocated store a) Source #

Methods

getVertexBuffers :: Allocated store a -> [Buffer] Source #

getInstanceCount :: Allocated store a -> Word32 Source #

data IndexRange Source #

Constructors

IndexRange 

Instances

Instances details
Eq IndexRange Source # 
Instance details

Defined in Resource.Model

Ord IndexRange Source # 
Instance details

Defined in Resource.Model

Show IndexRange Source # 
Instance details

Defined in Resource.Model

Generic IndexRange Source # 
Instance details

Defined in Resource.Model

Associated Types

type Rep IndexRange :: Type -> Type #

Storable IndexRange Source # 
Instance details

Defined in Resource.Model

Serialise IndexRange Source # 
Instance details

Defined in Resource.Model

Methods

encode :: IndexRange -> Encoding

decode :: Decoder s IndexRange

encodeList :: [IndexRange] -> Encoding

decodeList :: Decoder s [IndexRange]

type Rep IndexRange Source # 
Instance details

Defined in Resource.Model

type Rep IndexRange = D1 ('MetaData "IndexRange" "Resource.Model" "keid-core-0.1.4.0-inplace" 'False) (C1 ('MetaCons "IndexRange" 'PrefixI 'True) (S1 ('MetaSel ('Just "irFirstIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "irIndexCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32)))

createStagedL :: (HasVulkan context, Storable pos, Storable attrs, MonadUnliftIO io) => context -> Queues CommandPool -> [Vertex pos attrs] -> Maybe [Word32] -> io (Indexed 'Staged pos attrs) Source #

createStaged :: (HasVulkan context, Storable pos, Storable attrs, MonadUnliftIO io) => context -> Queues CommandPool -> Vector pos -> Vector attrs -> Vector Word32 -> io (Indexed 'Staged pos attrs) Source #

createCoherentEmpty :: (HasVulkan context, Storable pos, Storable attrs, MonadUnliftIO io) => context -> Int -> io (Indexed 'Coherent pos attrs) Source #

destroyIndexed :: (HasVulkan context, MonadUnliftIO io) => context -> Indexed storage pos attrs -> io () Source #

updateCoherent :: (HasVulkan context, Storable pos, Storable attrs, MonadUnliftIO io) => context -> [Vertex pos attrs] -> Indexed 'Coherent pos attrs -> io (Indexed 'Coherent pos attrs) Source #