Vixen
02b45cc4
csharp
public sealed class AssetMeshSource

The geometry a scene's mesh references name, loaded through the content manager.

Read the guide page for this →

Remarks

The join that made MeshRenderable mean something. Everything either side of it was finished — the catalog resolves a reference, the manager loads and shares the bytes, and MeshExtractionSystem puts a render object in the store — and between them stood one function returning an empty mesh, so an entity carrying a mesh reference was authored, saved, compiled, loaded and invisible.

Nothing here waits. A load is started on the first ask and the answer is "not yet" until it lands; the extraction system leaves the entity alone and asks again next frame. The alternative is a synchronous load inside extraction, which stalls the frame a level starts on every mesh in it — the one frame in the run where the I/O is worst placed.

A handle per reference, kept. An AssetHandle`1 is the claim that keeps the mesh and everything it depends on loaded, so dropping it would unload the geometry a residency slice was built from. Keeping the failed ones matters just as much: without that a reference nothing can resolve is retried every frame for the life of the level.

Fields and properties (3)

  • public int Requested

    How many distinct meshes have been asked for.

  • public int Loaded

    How many of them have arrived.

  • public int Failed

    How many will not arrive.

Methods (2)

  • public AssetMeshSource(AssetManager assets)

    Builds a source over a content manager.

  • public bool TryGet(AssetReference reference, out MeshData mesh)

    The mesh a reference names, if it is here yet.

Used by (2)

  • ArenaThirdPersonShooter
  • WorldRendererVixen.Engine.Renderer