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

Render.DescSets.Set0

Synopsis

Documentation

data Scene Source #

Constructors

Scene 

Fields

Instances

Instances details
Generic Scene Source # 
Instance details

Defined in Render.DescSets.Set0

Associated Types

type Rep Scene :: Type -> Type Source #

Methods

from :: Scene -> Rep Scene x Source #

to :: Rep Scene x -> Scene Source #

Show Scene Source # 
Instance details

Defined in Render.DescSets.Set0

GStorable Scene Source # 
Instance details

Defined in Render.DescSets.Set0

type Rep Scene Source # 
Instance details

Defined in Render.DescSets.Set0

type Rep Scene = D1 ('MetaData "Scene" "Render.DescSets.Set0" "keid-render-basic-0.1.8.0-inplace" 'False) (C1 ('MetaCons "Scene" 'PrefixI 'True) (((S1 ('MetaSel ('Just "sceneProjection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Transform) :*: S1 ('MetaSel ('Just "sceneInvProjection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Transform)) :*: (S1 ('MetaSel ('Just "sceneView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Transform) :*: (S1 ('MetaSel ('Just "sceneInvView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Transform) :*: S1 ('MetaSel ('Just "sceneViewPos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Vec3)))) :*: ((S1 ('MetaSel ('Just "sceneViewDir") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Vec3) :*: S1 ('MetaSel ('Just "sceneTweaks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Vec4)) :*: (S1 ('MetaSel ('Just "sceneFog") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Vec4) :*: (S1 ('MetaSel ('Just "sceneEnvCube") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int32) :*: S1 ('MetaSel ('Just "sceneNumLights") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))))))
type Specialization Pipeline 
Instance details

Defined in Render.Debug.Pipeline

type Specialization Pipeline = Mode
type Specialization Pipeline 
Instance details

Defined in Render.DepthOnly.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Font.EvanwSdf.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Lit.Colored.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Lit.Material.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Lit.Textured.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Skybox.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.Colored.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.Line2d.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.Sprite.Pipeline

type Specialization Pipeline = (Float, Bool)
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.Textured.Pipeline

type Specialization Pipeline = ()
type Specialization Pipeline 
Instance details

Defined in Render.Unlit.TileMap.Pipeline

type Specialization Pipeline = ()

allocate :: (Traversable textures, Traversable cubes, MonadVulkan env m, MonadResource m) => Tagged '[Scene] DescriptorSetLayout -> textures (Texture Flat) -> cubes (Texture CubeMap) -> Maybe (Allocated 'Coherent Sun) -> ("shadow maps" ::: Vector ImageView) -> Maybe (Allocated 'Coherent Material) -> ResourceT m (FrameResource '[Scene]) Source #

allocateEmpty :: (MonadVulkan env m, MonadResource m) => Tagged '[Scene] DescriptorSetLayout -> ResourceT m (FrameResource '[Scene]) Source #

Minimal viable Scene without textures and lighting.

updateSet0Ds :: (HasVulkan context, Traversable textures, Traversable cubes, MonadIO m) => context -> Tagged '[Scene] (Vector DescriptorSet) -> Allocated 'Coherent Scene -> textures (Texture Flat) -> cubes (Texture CubeMap) -> Maybe (Allocated 'Coherent Sun) -> Vector (Sampler, ImageView) -> Maybe (Allocated 'Coherent Material) -> m () Source #

mkBindings :: (Foldable samplers, Foldable textures, Foldable cubemaps) => samplers Sampler -> textures a -> cubemaps b -> Word32 -> Tagged Scene DsLayoutBindings Source #

data FrameResource (ds :: [Type]) Source #

Constructors

FrameResource 

type Buffer = Allocated 'Coherent Scene Source #

type Process = Merge Scene Source #

A process that will assemble Scene values.

withBoundSet0 :: MonadIO m => FrameResource ds -> Pipeline ds vertices instances -> CommandBuffer -> Bound ds Void Void m b -> m b Source #