public interface IMeshSourceWhere the geometry a MeshRenderable names comes from.
Remarks
An interface here rather than an AssetManager, because this assembly must not know what a bundle is. A renderer's business is a vertex buffer; catalogs, addresses and claims belong to Vixen.Assets, and a project that loads its meshes from a file, a test that hands over an array, and an editor that has the mesh in memory already are all legitimate. Vixen.Engine.Renderer is where the two meet — see AssetMeshSource.
The whole design is in the return value. Loading is asynchronous and extraction runs inside a frame, so this asks rather than waits: false means "not yet", the entity is left without a RenderHandle, and next frame's reconciliation asks again. A synchronous load here would stall the frame a level starts on every mesh in it, which is the worst frame in the run to spend I/O in.
Methods (1)
bool TryGet(AssetReference reference, out MeshData mesh)The mesh a reference names, if it is here yet.
Used by (15)
- AssetMeshSourceVixen.Engine.Renderer
- DeferredMeshSourceVixen.Engine.Renderer.Tests
- EveryMeshVixen.Rendering.Tests
- MeshExtractionSystemVixen.Rendering
- OneMeshVixen.Rendering.Tests
- WorldRendererVixen.Engine.Renderer
- BlockoutHandoffVixen.Editor.Blockout
- BlockoutModeVixen.Editor.Blockout
- BlockoutModuleVixen.Editor.Blockout
- EditorApplicationVixen.Editor.App
- MeshesVixen.Editor.SceneView.Tests
- MeshesVixen.Editor.SceneView.Tests
- ProjectMeshSourceVixen.Editor.Assets
- SceneMeshesVixen.Editor.SceneView
- SourceVixen.Editor.Blockout.Tests