keid-core-0.1.9.0: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageGHC2021

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 #

type Vertex2d attrs = Vertex Vec2 attrs Source #

type Vertex3d attrs = Vertex Packed attrs Source #

data Vertex pos attrs Source #

Constructors

Vertex 

Fields

Instances

Instances details
(HasVkFormat pos, HasVkFormat attrs) => HasVertexInputBindings (Vertex pos attrs :: Type) Source # 
Instance details

Defined in Resource.Model

Methods

vertexInputBindings :: [VertexInputBinding] Source #

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

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 #

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

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

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

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

class HasVertexBuffers a where Source #

Minimal complete definition

Nothing

Associated Types

type VertexBuffersOf a Source #

Instances

Instances details
HasVertexBuffers () Source # 
Instance details

Defined in Resource.Model

Associated Types

type VertexBuffersOf () Source #

HasVertexBuffers (Allocated store a) Source # 
Instance details

Defined in Resource.Model

Associated Types

type VertexBuffersOf (Allocated store a) Source #

class GHasVertexBuffers f where Source #

Methods

gVertexBuffers :: forall a. f a -> [Buffer] Source #

gInstanceCount :: forall a. f a -> Word32 Source #

Instances

Instances details
(GHasVertexBuffers l, GHasVertexBuffers r) => GHasVertexBuffers (l :*: r) Source # 
Instance details

Defined in Resource.Model

Methods

gVertexBuffers :: (l :*: r) a -> [Buffer] Source #

gInstanceCount :: (l :*: r) a -> Word32 Source #

HasVertexBuffers a => GHasVertexBuffers (K1 r a :: Type -> Type) Source # 
Instance details

Defined in Resource.Model

Methods

gVertexBuffers :: K1 r a a0 -> [Buffer] Source #

gInstanceCount :: K1 r a a0 -> Word32 Source #

GHasVertexBuffers f => GHasVertexBuffers (M1 c cb f) Source # 
Instance details

Defined in Resource.Model

Methods

gVertexBuffers :: M1 c cb f a -> [Buffer] Source #

gInstanceCount :: M1 c cb f a -> Word32 Source #

data IndexRange Source #

Constructors

IndexRange 

Instances

Instances details
Storable IndexRange Source # 
Instance details

Defined in Resource.Model

Generic IndexRange Source # 
Instance details

Defined in Resource.Model

Associated Types

type Rep IndexRange :: Type -> Type #

Show IndexRange Source # 
Instance details

Defined in Resource.Model

Eq IndexRange Source # 
Instance details

Defined in Resource.Model

Ord IndexRange Source # 
Instance details

Defined in Resource.Model

Serialise IndexRange Source # 
Instance details

Defined in Resource.Model

type Rep IndexRange Source # 
Instance details

Defined in Resource.Model

type Rep IndexRange = D1 ('MetaData "IndexRange" "Resource.Model" "keid-core-0.1.9.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 :: (MonadVulkan env m, Storable pos, Storable attrs) => Maybe Text -> Queues CommandPool -> [Vertex pos attrs] -> Maybe [Word32] -> m (Indexed 'Staged pos attrs) Source #

createStaged :: (MonadVulkan env m, Storable pos, Storable attrs) => Maybe Text -> Queues CommandPool -> Vector pos -> Vector attrs -> Vector Word32 -> m (Indexed 'Staged pos attrs) Source #

createCoherentEmpty :: (MonadVulkan env m, Storable pos, Storable attrs) => Maybe Text -> Int -> m (Indexed 'Coherent pos attrs) Source #

registerIndexed_ :: (MonadVulkan env m, MonadResource m) => Indexed storage pos attrs -> m () Source #

destroyIndexed :: MonadVulkan env m => Indexed storage pos attrs -> m () Source #

updateCoherent :: (MonadVulkan env m, Storable pos, Storable attrs) => [Vertex pos attrs] -> Indexed 'Coherent pos attrs -> m (Indexed 'Coherent pos attrs) Source #