- Refactor D3D12 backend and RenderGraph module - Update graphics RHI and core rendering components - Add Random.hlsl shader include - Regenerate API documentation and update user guides
562 lines
197 KiB
JSON
562 lines
197 KiB
JSON
{
|
|
"api/Ghost.Entities.ChunkView.html": {
|
|
"href": "api/Ghost.Entities.ChunkView.html",
|
|
"title": "Struct ChunkView | GhostEngine",
|
|
"summary": "Struct ChunkView Namespace Ghost.Entities Assembly Ghost.Entities.dll Provides a read-only view over a chunk of entities and their component data within an archetype. public readonly ref struct ChunkView Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Remarks This does not filter disabled/enabled components. You must handle that manually. Properties EntityCount public int EntityCount { get; } Property Value int Methods GetComponentDataRW<T>() Gets a span providing direct access to the component data of space T0 for structuralAll entities in the chunk. public Span<T> GetComponentDataRW<T>() where T : unmanaged, IComponent Returns Span<T> A span of space <T> containing the component data for each entity in the chunk. Type Parameters T The space of component to access. Must be an unmanaged space that implements Component. Exceptions InvalidOperationException Thrown if the specified component space is not present in the archetype. GetComponentData<T>() Gets a readonly span providing direct access to the component data of space T0 for structuralAll entities in the chunk. public ReadOnlySpan<T> GetComponentData<T>() where T : unmanaged, IComponent Returns ReadOnlySpan<T> A readonly span of space <T> containing the component data for each entity in the chunk. Type Parameters T The space of component to access. Must be an unmanaged space that implements Component. Exceptions InvalidOperationException Thrown if the specified component space is not present in the archetype. GetComponentVersion(Identifier<IComponent>) Gets the current version number associated with the specified component identifier. public int GetComponentVersion(Identifier<IComponent> id) Parameters id Identifier<IComponent> The identifier of the component for which to retrieve the version number. Must reference a valid component. Returns int The version number of the specified component. GetComponentVersion<T>() Gets the current version number associated with the specified component space. public int GetComponentVersion<T>() where T : unmanaged, IComponent Returns int The version number of the component space T. Type Parameters T The component space for which to retrieve the version. Must be an unmanaged space that implements IComponent. GetEnableBits<T>() Gets a bit set representing the enabled state of each instance of the specified enableable component space within the current chunk. public SpanBitSet GetEnableBits<T>() where T : unmanaged, IEnableableComponent Returns SpanBitSet A Misaki.HighPerformance.LowLevel.Collections.SpanBitSet that provides access to the enablement bits for all instances of the specified component space in the chunk. Type Parameters T The component space for which to retrieve enablement bits. Must be unmanaged and implement IEnableableComponent. Exceptions InvalidOperationException Thrown if the specified component space does not support enablement. GetEntities() Returns a read-only span containing structuralAll entities stored in the current chunk. public ReadOnlySpan<Entity> GetEntities() Returns ReadOnlySpan<Entity> A read-only span of Entity values representing the entities in the chunk. HasChanged(Identifier<IComponent>, int) Determines whether the specified component has changed since the given version. public bool HasChanged(Identifier<IComponent> id, int version) Parameters id Identifier<IComponent> The identifier of the component to check for changes. version int The version number to compare against the component's current version. Must be greater than or equal to zero. Returns bool true if the component's current version is less than or equal to the specified version; otherwise, false. HasChanged<T>(int) Determines whether the specified version indicates that the component of space T has changed since the last recorded version. public bool HasChanged<T>(int version) where T : unmanaged, IComponent Parameters version int The version number to compare against the current version of the component. Returns bool true if the component of space T has changed since the specified version; otherwise, false. Type Parameters T The space of component to check for changes. Must be an unmanaged space that implements IComponent. HasStructuralChanged(int) Determines whether the chunk's structure has changed since the specified version. public bool HasStructuralChanged(int version) Parameters version int The version number to compare against the chunk's structural version. Returns bool true if the chunk's structure has changed since the specified version; otherwise, false. IsComponentEnabled<T>(int) Determines whether the specified component of space T at the given index is currently enabled. public bool IsComponentEnabled<T>(int index) where T : unmanaged, IEnableableComponent Parameters index int The zero-based index of the component instance to check within the chunk. Returns bool true if the component at the specified index is enabled; otherwise, false. Type Parameters T The space of the component to check. Must be an unmanaged space that implements IEnableableComponent. Exceptions InvalidOperationException Thrown if the specified component space T does not support enable/disable functionality."
|
|
},
|
|
"api/Ghost.Entities.ComponentManager.html": {
|
|
"href": "api/Ghost.Entities.ComponentManager.html",
|
|
"title": "Class ComponentManager | GhostEngine",
|
|
"summary": "Class ComponentManager Namespace Ghost.Entities Assembly Ghost.Entities.dll public class ComponentManager : IDisposable Inheritance object ComponentManager Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties ArchetypeCount public int ArchetypeCount { get; } Property Value int Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() ~ComponentManager() protected ~ComponentManager() GetEntityQueryReference(Identifier<EntityQuery>) Gets a reference to the entity query with the specified identifier. public ref EntityQuery GetEntityQueryReference(Identifier<EntityQuery> id) Parameters id Identifier<EntityQuery> Returns EntityQuery"
|
|
},
|
|
"api/Ghost.Entities.ComponentSet.html": {
|
|
"href": "api/Ghost.Entities.ComponentSet.html",
|
|
"title": "Struct ComponentSet | GhostEngine",
|
|
"summary": "Struct ComponentSet Namespace Ghost.Entities Assembly Ghost.Entities.dll Represents an immutable set of component identifiers used to define a group of components within an entity or system. public struct ComponentSet : IDisposable, IEquatable<ComponentSet> Implements IDisposable IEquatable<ComponentSet> Inherited Members ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Constructors ComponentSet(AllocationHandle, params ReadOnlySpan<Identifier<IComponent>>) public ComponentSet(AllocationHandle allocationHandle, params ReadOnlySpan<Identifier<IComponent>> components) Parameters allocationHandle AllocationHandle components ReadOnlySpan<Identifier<IComponent>> ComponentSet(Allocator, params ReadOnlySpan<Identifier<IComponent>>) public ComponentSet(Allocator allocator, params ReadOnlySpan<Identifier<IComponent>> components) Parameters allocator Allocator components ReadOnlySpan<Identifier<IComponent>> Properties Components public readonly ReadOnlySpan<Identifier<IComponent>> Components { get; } Property Value ReadOnlySpan<Identifier<IComponent>> Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Equals(ComponentSet) Indicates whether the current object is equal to another object of the same type. public readonly bool Equals(ComponentSet other) Parameters other ComponentSet An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object?) Indicates whether this instance and a specified object are equal. public override readonly bool Equals(object? obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Operators operator ==(ComponentSet, ComponentSet) public static bool operator ==(ComponentSet left, ComponentSet right) Parameters left ComponentSet right ComponentSet Returns bool operator !=(ComponentSet, ComponentSet) public static bool operator !=(ComponentSet left, ComponentSet right) Parameters left ComponentSet right ComponentSet Returns bool"
|
|
},
|
|
"api/Ghost.Entities.ComponentTypeID-1.html": {
|
|
"href": "api/Ghost.Entities.ComponentTypeID-1.html",
|
|
"title": "Class ComponentTypeID<T> | GhostEngine",
|
|
"summary": "Class ComponentTypeID<T> Namespace Ghost.Entities Assembly Ghost.Entities.dll Provides a unique identifier for the specified unmanaged component space. public static class ComponentTypeID<T> where T : unmanaged, IComponent Type Parameters T The component space for which to obtain an identifier. Must be unmanaged and implement IComponent. Inheritance object ComponentTypeID<T> Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields Value public static readonly Identifier<IComponent> Value Field Value Identifier<IComponent>"
|
|
},
|
|
"api/Ghost.Entities.DefaultSystemGroup.html": {
|
|
"href": "api/Ghost.Entities.DefaultSystemGroup.html",
|
|
"title": "Class DefaultSystemGroup | GhostEngine",
|
|
"summary": "Class DefaultSystemGroup Namespace Ghost.Entities Assembly Ghost.Entities.dll public sealed class DefaultSystemGroup : SystemGroup, ISystem Inheritance object SystemGroup DefaultSystemGroup Implements ISystem Inherited Members SystemGroup.World SystemGroup.AddSystem<T>() SystemGroup.SortSystems() SystemGroup.Initialize(ref readonly SystemAPI) SystemGroup.Update(ref readonly SystemAPI) SystemGroup.Cleanup(ref readonly SystemAPI) object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString()"
|
|
},
|
|
"api/Ghost.Entities.Entity.html": {
|
|
"href": "api/Ghost.Entities.Entity.html",
|
|
"title": "Struct Entity | GhostEngine",
|
|
"summary": "Struct Entity Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly record struct Entity : IEquatable<Entity> Implements IEquatable<Entity> Inherited Members ValueType.Equals(object) ValueType.GetHashCode() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields INVALID_ID public const int INVALID_ID = -1 Field Value int Properties Generation public int Generation { get; } Property Value int ID public int ID { get; } Property Value int Invalid public static Entity Invalid { get; } Property Value Entity IsValid public bool IsValid { get; } Property Value bool Methods ToString() Returns the fully qualified type name of this instance. public override string ToString() Returns string The fully qualified type name."
|
|
},
|
|
"api/Ghost.Entities.EntityCommandBuffer.html": {
|
|
"href": "api/Ghost.Entities.EntityCommandBuffer.html",
|
|
"title": "Class EntityCommandBuffer | GhostEngine",
|
|
"summary": "Class EntityCommandBuffer Namespace Ghost.Entities Assembly Ghost.Entities.dll public class EntityCommandBuffer : IDisposable Inheritance object EntityCommandBuffer Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors EntityCommandBuffer(EntityManager) public EntityCommandBuffer(EntityManager entityManager) Parameters entityManager EntityManager Methods AddComponent<T>(Entity, T) public void AddComponent<T>(Entity entity, T component = default) where T : unmanaged, IComponent Parameters entity Entity component T Type Parameters T CreateEntity(int) public void CreateEntity(int count = 1) Parameters count int CreateEntity(int, ComponentSet) public void CreateEntity(int count, ComponentSet set) Parameters count int set ComponentSet DestroyEntity(Entity) public void DestroyEntity(Entity entity) Parameters entity Entity Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() ~EntityCommandBuffer() protected ~EntityCommandBuffer() RemoveComponent<T>(Entity) public void RemoveComponent<T>(Entity entity) where T : unmanaged, IComponent Parameters entity Entity Type Parameters T SetComponent<T>(Entity, T) public void SetComponent<T>(Entity entity, T component) where T : unmanaged, IComponent Parameters entity Entity component T Type Parameters T"
|
|
},
|
|
"api/Ghost.Entities.EntityManager.html": {
|
|
"href": "api/Ghost.Entities.EntityManager.html",
|
|
"title": "Class EntityManager | GhostEngine",
|
|
"summary": "Class EntityManager Namespace Ghost.Entities Assembly Ghost.Entities.dll A manager for creating, destroying, and managing entities and their components. public class EntityManager : IDisposable Inheritance object EntityManager Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks All methods in this class are not thread-safe and all of them will cause structural changes if not mentioned otherwise. Use EntityCommandBuffer to defer structural changes to a safe point. Use GetThreadLocalEntityCommandBuffer(int) to get a thread-local command buffer for multithreaded scenarios. Properties World public World World { get; } Property Value World Methods AddComponent(Entity, Identifier<IComponent>, void*) Add a component to the specified entity. public Error AddComponent(Entity entity, Identifier<IComponent> componentID, void* pComponent) Parameters entity Entity The entity to add the component to. componentID Identifier<IComponent> The component space ID to add. pComponent void* Pointer to the component data. Returns Error The result status of the operation. AddComponent<T>(Entity, T) Add a component to the specified entity. public Error AddComponent<T>(Entity entity, T component = default) where T : unmanaged, IComponent Parameters entity Entity The entity to add the component to. component T The component data. Returns Error The result status of the operation. Type Parameters T The component space. AddScriptComponent<T>(Entity) Adds a ScriptComponent of space T to the given Entity. public void AddScriptComponent<T>(Entity entity) where T : ScriptComponent, new() Parameters entity Entity The Entity to add the ScriptComponent to. Type Parameters T The space of ScriptComponent to add. AddScriptComponent<T>(ManagedEntity, Entity) public void AddScriptComponent<T>(ManagedEntity managedEntity, Entity entity) where T : ScriptComponent, new() Parameters managedEntity ManagedEntity entity Entity Type Parameters T CreateEntities(int) Create multiple entities with no components. public void CreateEntities(int count) Parameters count int The number of entities to create. CreateEntities(int, ComponentSet) Create multiple entities with specified components. public void CreateEntities(int count, ComponentSet set) Parameters count int The number of entities to create. set ComponentSet A set of component space IDs to add to the entities. CreateEntities(Span<Entity>) Create multiple entities with no components. public void CreateEntities(Span<Entity> entities) Parameters entities Span<Entity> The span to store the created entities. CreateEntities(Span<Entity>, ComponentSet) Create multiple entities with specified components. public void CreateEntities(Span<Entity> entities, ComponentSet set) Parameters entities Span<Entity> The span to store the created entities. set ComponentSet A set of component space IDs to add to the entities. CreateEntity() Create an entity with no components. public Entity CreateEntity() Returns Entity The created entity. CreateEntity(ComponentSet) Create an entity with specified components. public Entity CreateEntity(ComponentSet set) Parameters set ComponentSet A set of component space IDs to add to the entities. Returns Entity The created entity. CreateManagedEntity() Creates a new ManagedEntity. public ManagedEntity CreateManagedEntity() Returns ManagedEntity The created ManagedEntity. Remarks You must call this if you add ManagedEntityRef manually to an entity. Otherwise, use CreateManagedEntity(Entity). CreateManagedEntity(Entity) Creates a new ManagedEntity and associates it with the given Entity. public ManagedEntity CreateManagedEntity(Entity entity) Parameters entity Entity The Entity to associate with the ManagedEntity. Returns ManagedEntity The created ManagedEntity. CreateSingleton(Identifier<IComponent>, void*) Create a singleton entity with the specified component. public Error CreateSingleton(Identifier<IComponent> componentID, void* pComponent) Parameters componentID Identifier<IComponent> The component space ID of the singleton. pComponent void* Pointer to the component data. Returns Error The result status of the operation. CreateSingleton<T>(T) Create a singleton entity with the specified component. public Error CreateSingleton<T>(T component = default) where T : unmanaged, IComponent Parameters component T The component data. Returns Error The result status of the operation. Type Parameters T The component space. DestroyEntities(ReadOnlySpan<Entity>) Destroy the specified entities. public void DestroyEntities(ReadOnlySpan<Entity> entities) Parameters entities ReadOnlySpan<Entity> The entities to destroy. DestroyEntity(Entity) Destroy the specified entity. public Error DestroyEntity(Entity entity) Parameters entity Entity Returns Error The result status of the operation. DestroyManagedEntity(ManagedEntity) Destroys the given ManagedEntity and calls OnDestroy on all associated ScriptComponents. public void DestroyManagedEntity(ManagedEntity managedEntity) Parameters managedEntity ManagedEntity The ManagedEntity to destroy. DestroyScriptComponent<T>(ManagedEntity) public bool DestroyScriptComponent<T>(ManagedEntity managedEntity) where T : ScriptComponent Parameters managedEntity ManagedEntity Returns bool Type Parameters T Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Exists(Entity) Check if the specified entity exists. public bool Exists(Entity entity) Parameters entity Entity The entity to check. Returns bool True if the entity exists, false otherwise. Exists(ManagedEntity) Checks if the given ManagedEntity exists. public bool Exists(ManagedEntity managedEntity) Parameters managedEntity ManagedEntity The ManagedEntity to check. Returns bool True if the ManagedEntity exists, false otherwise. ~EntityManager() protected ~EntityManager() GetComponent(Entity, Identifier<IComponent>) Get a pointer to the component data for the specified entity. public void* GetComponent(Entity entity, Identifier<IComponent> componentID) Parameters entity Entity The entity to get the component data for. componentID Identifier<IComponent> The component space ID to get. Returns void* Pointer to the component data, or null if not found. GetComponent<T>(Entity) Get a reference to the component data for the specified entity. public ref T GetComponent<T>(Entity entity) where T : unmanaged, IComponent Parameters entity Entity The entity to get the component data for. Returns T Reference to the component data. null ref if not found. Type Parameters T The component space. GetScriptComponent<T>(ManagedEntity) public T GetScriptComponent<T>(ManagedEntity managedEntity) where T : ScriptComponent Parameters managedEntity ManagedEntity Returns T Type Parameters T GetScriptComponents<T>(ManagedEntity) public List<T> GetScriptComponents<T>(ManagedEntity managedEntity) where T : ScriptComponent Parameters managedEntity ManagedEntity Returns List<T> Type Parameters T GetSingleton(Identifier<IComponent>) Get a pointer to the singleton component data. public void* GetSingleton(Identifier<IComponent> componentID) Parameters componentID Identifier<IComponent> The component space ID of the singleton. Returns void* Pointer to the component data, or null if not found. GetSingleton<T>() Get a reference to the singleton component data. public ref T GetSingleton<T>() where T : unmanaged, IComponent Returns T Reference to the component data. null ref if not found. Type Parameters T The component space. HasComponent(Entity, Identifier<IComponent>) Check if the specified entity has the specified component. public bool HasComponent(Entity entity, Identifier<IComponent> componentID) Parameters entity Entity The entity to check. componentID Identifier<IComponent> The component space ID to check. Returns bool True if the entity has the component, false otherwise. HasComponent<T>(Entity) Check if the specified entity has the specified component. public bool HasComponent<T>(Entity entity) where T : unmanaged, IComponent Parameters entity Entity The entity to check. Returns bool True if the entity has the component, false otherwise. Type Parameters T The component space. HasScriptComponent<T>(ManagedEntity) Checks if the given ManagedEntity has a ScriptComponent of space T. public bool HasScriptComponent<T>(ManagedEntity managedEntity) where T : ScriptComponent Parameters managedEntity ManagedEntity The ManagedEntity to check. Returns bool True if the ManagedEntity has a ScriptComponent of space T, false Type Parameters T The space of ScriptComponent to check for. RemoveComponent(Entity, Identifier<IComponent>) Remove a component from the specified entity. public Error RemoveComponent(Entity entity, Identifier<IComponent> componentID) Parameters entity Entity The entity to remove the component from. componentID Identifier<IComponent> The component space ID to remove. Returns Error The result status of the operation. RemoveComponent<T>(Entity) Remove a component from the specified entity. public Error RemoveComponent<T>(Entity entity) where T : unmanaged, IComponent Parameters entity Entity The entity to remove the component from. Returns Error The result status of the operation. Type Parameters T The component space. SetComponent(Entity, Identifier<IComponent>, void*) Set the component data for the specified entity. public Error SetComponent(Entity entity, Identifier<IComponent> componentID, void* pComponent) Parameters entity Entity The entity to set the component data for. componentID Identifier<IComponent> The component space ID to set. pComponent void* Pointer to the component data. Returns Error The result status of the operation. SetComponent<T>(Entity, T) Set the component data for the specified entity. public Error SetComponent<T>(Entity entity, T component) where T : unmanaged, IComponent Parameters entity Entity The entity to set the component data for. component T The component data. Returns Error Type Parameters T The component space. SetEnabled(Entity, Identifier<IComponent>, bool) public Error SetEnabled(Entity entity, Identifier<IComponent> componentID, bool enabled) Parameters entity Entity componentID Identifier<IComponent> enabled bool Returns Error SetEnabled<T>(Entity, bool) public Error SetEnabled<T>(Entity entity, bool enabled) where T : unmanaged, IEnableableComponent Parameters entity Entity enabled bool Returns Error Type Parameters T"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ChunkIterator.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ChunkIterator.Enumerator.html",
|
|
"title": "Struct EntityQuery.ChunkIterator.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ChunkIterator.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ChunkIterator.Enumerator Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public readonly ChunkView Current { get; } Property Value ChunkView Methods MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ChunkIterator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ChunkIterator.html",
|
|
"title": "Struct EntityQuery.ChunkIterator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ChunkIterator Namespace Ghost.Entities Assembly Ghost.Entities.dll Provides an enumerator for iterating over chunks of entities and their component data that match a set of archetypes within a world. public readonly ref struct EntityQuery.ChunkIterator Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ChunkIterator.Enumerator GetEnumerator() Returns EntityQuery.ChunkIterator.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-1.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-1.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public ref T0 Current { get; } Property Value T0 Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-1.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-1.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0> where T0 : unmanaged, IComponent Type Parameters T0 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-2.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-2.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-2.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-2.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 Methods Deconstruct(out Ref<T0>, out Ref<T1>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1) Parameters component0 Ref<T0> component1 Ref<T1>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-2.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-2.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Type Parameters T0 T1 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-3.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-3.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-3.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-3.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-3.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-3.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Type Parameters T0 T1 T2 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-4.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-4.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-4.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-4.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-4.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-4.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-5.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-5.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-5.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-5.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-5.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-5.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-6.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-6.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-6.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-6.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-6.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-6.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-7.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-7.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-7.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-7.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 component6 public ref T6 component6 Field Value T6 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>, out Ref<T6>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5, out Ref<T6> component6) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5> component6 Ref<T6>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-7.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-7.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-8.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-8.Enumerator.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Current { get; } Property Value EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-8.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-8.QueryItem.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 component6 public ref T6 component6 Field Value T6 component7 public ref T7 component7 Field Value T7 Methods Deconstruct(out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>, out Ref<T6>, out Ref<T7>) public void Deconstruct(out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5, out Ref<T6> component6, out Ref<T7> component7) Parameters component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5> component6 Ref<T6> component7 Ref<T7>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.ComponentIterator-8.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.ComponentIterator-8.html",
|
|
"title": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> | GhostEngine",
|
|
"summary": "Struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator GetEnumerator() Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>) public void Deconstruct(out Entity entity, out Ref<T0> component0) Parameters entity Entity component0 Ref<T0>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-1.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0> where T0 : unmanaged, IComponent Type Parameters T0 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1) Parameters entity Entity component0 Ref<T0> component1 Ref<T1>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-2.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Type Parameters T0 T1 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-3.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Type Parameters T0 T1 T2 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-4.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-5.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-6.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 component6 public ref T6 component6 Field Value T6 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>, out Ref<T6>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5, out Ref<T6> component6) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5> component6 Ref<T6>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-7.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.Enumerator.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.Enumerator.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Current public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Current { get; } Property Value EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() MoveNext() public bool MoveNext() Returns bool Reset() public void Reset()"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.QueryItem.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.QueryItem.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields component0 public ref T0 component0 Field Value T0 component1 public ref T1 component1 Field Value T1 component2 public ref T2 component2 Field Value T2 component3 public ref T3 component3 Field Value T3 component4 public ref T4 component4 Field Value T4 component5 public ref T5 component5 Field Value T5 component6 public ref T6 component6 Field Value T6 component7 public ref T7 component7 Field Value T7 entity public Entity entity Field Value Entity Methods Deconstruct(out Entity, out Ref<T0>, out Ref<T1>, out Ref<T2>, out Ref<T3>, out Ref<T4>, out Ref<T5>, out Ref<T6>, out Ref<T7>) public void Deconstruct(out Entity entity, out Ref<T0> component0, out Ref<T1> component1, out Ref<T2> component2, out Ref<T3> component3, out Ref<T4> component4, out Ref<T5> component5, out Ref<T6> component6, out Ref<T7> component7) Parameters entity Entity component0 Ref<T0> component1 Ref<T1> component2 Ref<T2> component3 Ref<T3> component4 Ref<T4> component5 Ref<T5> component6 Ref<T6> component7 Ref<T7>"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.EntityComponentIterator-8.html",
|
|
"title": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> | GhostEngine",
|
|
"summary": "Struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods GetEnumerator() public EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator GetEnumerator() Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator"
|
|
},
|
|
"api/Ghost.Entities.EntityQuery.html": {
|
|
"href": "api/Ghost.Entities.EntityQuery.html",
|
|
"title": "Struct EntityQuery | GhostEngine",
|
|
"summary": "Struct EntityQuery Namespace Ghost.Entities Assembly Ghost.Entities.dll public struct EntityQuery : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Methods CalculateEntityCount() public readonly int CalculateEntityCount() Returns int Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() ForEach<T0>(ForEachWithEntity<T0>) public readonly void ForEach<T0>(ForEachWithEntity<T0> action) where T0 : unmanaged, IComponent Parameters action ForEachWithEntity<T0> Type Parameters T0 ForEach<T0>(ForEach<T0>) public readonly void ForEach<T0>(ForEach<T0> action) where T0 : unmanaged, IComponent Parameters action ForEach<T0> Type Parameters T0 ForEach<T0, T1>(ForEachWithEntity<T0, T1>) public readonly void ForEach<T0, T1>(ForEachWithEntity<T0, T1> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1> Type Parameters T0 T1 ForEach<T0, T1>(ForEach<T0, T1>) public readonly void ForEach<T0, T1>(ForEach<T0, T1> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Parameters action ForEach<T0, T1> Type Parameters T0 T1 ForEach<T0, T1, T2>(ForEachWithEntity<T0, T1, T2>) public readonly void ForEach<T0, T1, T2>(ForEachWithEntity<T0, T1, T2> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2> Type Parameters T0 T1 T2 ForEach<T0, T1, T2>(ForEach<T0, T1, T2>) public readonly void ForEach<T0, T1, T2>(ForEach<T0, T1, T2> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2> Type Parameters T0 T1 T2 ForEach<T0, T1, T2, T3>(ForEachWithEntity<T0, T1, T2, T3>) public readonly void ForEach<T0, T1, T2, T3>(ForEachWithEntity<T0, T1, T2, T3> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2, T3> Type Parameters T0 T1 T2 T3 ForEach<T0, T1, T2, T3>(ForEach<T0, T1, T2, T3>) public readonly void ForEach<T0, T1, T2, T3>(ForEach<T0, T1, T2, T3> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2, T3> Type Parameters T0 T1 T2 T3 ForEach<T0, T1, T2, T3, T4>(ForEachWithEntity<T0, T1, T2, T3, T4>) public readonly void ForEach<T0, T1, T2, T3, T4>(ForEachWithEntity<T0, T1, T2, T3, T4> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2, T3, T4> Type Parameters T0 T1 T2 T3 T4 ForEach<T0, T1, T2, T3, T4>(ForEach<T0, T1, T2, T3, T4>) public readonly void ForEach<T0, T1, T2, T3, T4>(ForEach<T0, T1, T2, T3, T4> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2, T3, T4> Type Parameters T0 T1 T2 T3 T4 ForEach<T0, T1, T2, T3, T4, T5>(ForEachWithEntity<T0, T1, T2, T3, T4, T5>) public readonly void ForEach<T0, T1, T2, T3, T4, T5>(ForEachWithEntity<T0, T1, T2, T3, T4, T5> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2, T3, T4, T5> Type Parameters T0 T1 T2 T3 T4 T5 ForEach<T0, T1, T2, T3, T4, T5>(ForEach<T0, T1, T2, T3, T4, T5>) public readonly void ForEach<T0, T1, T2, T3, T4, T5>(ForEach<T0, T1, T2, T3, T4, T5> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2, T3, T4, T5> Type Parameters T0 T1 T2 T3 T4 T5 ForEach<T0, T1, T2, T3, T4, T5, T6>(ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6>) public readonly void ForEach<T0, T1, T2, T3, T4, T5, T6>(ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6> Type Parameters T0 T1 T2 T3 T4 T5 T6 ForEach<T0, T1, T2, T3, T4, T5, T6>(ForEach<T0, T1, T2, T3, T4, T5, T6>) public readonly void ForEach<T0, T1, T2, T3, T4, T5, T6>(ForEach<T0, T1, T2, T3, T4, T5, T6> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2, T3, T4, T5, T6> Type Parameters T0 T1 T2 T3 T4 T5 T6 ForEach<T0, T1, T2, T3, T4, T5, T6, T7>(ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7>) public readonly void ForEach<T0, T1, T2, T3, T4, T5, T6, T7>(ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Parameters action ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7> Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 ForEach<T0, T1, T2, T3, T4, T5, T6, T7>(ForEach<T0, T1, T2, T3, T4, T5, T6, T7>) public readonly void ForEach<T0, T1, T2, T3, T4, T5, T6, T7>(ForEach<T0, T1, T2, T3, T4, T5, T6, T7> action) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Parameters action ForEach<T0, T1, T2, T3, T4, T5, T6, T7> Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 GetChunkIterator() public readonly EntityQuery.ChunkIterator GetChunkIterator() Returns EntityQuery.ChunkIterator GetComponentIterator<T0>() public readonly EntityQuery.ComponentIterator<T0> GetComponentIterator<T0>() where T0 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0> Type Parameters T0 GetComponentIterator<T0, T1>() public readonly EntityQuery.ComponentIterator<T0, T1> GetComponentIterator<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1> Type Parameters T0 T1 GetComponentIterator<T0, T1, T2>() public readonly EntityQuery.ComponentIterator<T0, T1, T2> GetComponentIterator<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2> Type Parameters T0 T1 T2 GetComponentIterator<T0, T1, T2, T3>() public readonly EntityQuery.ComponentIterator<T0, T1, T2, T3> GetComponentIterator<T0, T1, T2, T3>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2, T3> Type Parameters T0 T1 T2 T3 GetComponentIterator<T0, T1, T2, T3, T4>() public readonly EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> GetComponentIterator<T0, T1, T2, T3, T4>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> Type Parameters T0 T1 T2 T3 T4 GetComponentIterator<T0, T1, T2, T3, T4, T5>() public readonly EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> GetComponentIterator<T0, T1, T2, T3, T4, T5>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> Type Parameters T0 T1 T2 T3 T4 T5 GetComponentIterator<T0, T1, T2, T3, T4, T5, T6>() public readonly EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> GetComponentIterator<T0, T1, T2, T3, T4, T5, T6>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> Type Parameters T0 T1 T2 T3 T4 T5 T6 GetComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>() public readonly EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> GetComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Returns EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 GetEntityComponentIterator<T0>() public readonly EntityQuery.EntityComponentIterator<T0> GetEntityComponentIterator<T0>() where T0 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0> Type Parameters T0 GetEntityComponentIterator<T0, T1>() public readonly EntityQuery.EntityComponentIterator<T0, T1> GetEntityComponentIterator<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1> Type Parameters T0 T1 GetEntityComponentIterator<T0, T1, T2>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2> GetEntityComponentIterator<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2> Type Parameters T0 T1 T2 GetEntityComponentIterator<T0, T1, T2, T3>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2, T3> GetEntityComponentIterator<T0, T1, T2, T3>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3> Type Parameters T0 T1 T2 T3 GetEntityComponentIterator<T0, T1, T2, T3, T4>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> GetEntityComponentIterator<T0, T1, T2, T3, T4>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> Type Parameters T0 T1 T2 T3 T4 GetEntityComponentIterator<T0, T1, T2, T3, T4, T5>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> GetEntityComponentIterator<T0, T1, T2, T3, T4, T5>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> Type Parameters T0 T1 T2 T3 T4 T5 GetEntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> GetEntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> Type Parameters T0 T1 T2 T3 T4 T5 T6 GetEntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>() public readonly EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> GetEntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Returns EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 ScheduleChunkParallel<TJob>(TJob, int, JobHandle) public JobHandle ScheduleChunkParallel<TJob>(TJob job, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobChunk Parameters job TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob ScheduleEntityParallel<TJob, T0>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0> where T0 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 ScheduleEntityParallel<TJob, T0, T1>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 ScheduleEntityParallel<TJob, T0, T1, T2>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 ScheduleEntityParallel<TJob, T0, T1, T2, T3>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2, T3>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2, T3> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 T3 ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2, T3, T4> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 T3 T4 ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2, T3, T4, T5> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 T3 T4 T5 ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5, T6>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5, T6>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2, T3, T4, T5, T6> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 T3 T4 T5 T6 ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5, T6, T7>(TJob, int, JobHandle) public JobHandle ScheduleEntityParallel<TJob, T0, T1, T2, T3, T4, T5, T6, T7>(TJob jobData, int batchSize, JobHandle dependency) where TJob : unmanaged, IJobEntity<T0, T1, T2, T3, T4, T5, T6, T7> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Parameters jobData TJob batchSize int dependency JobHandle Returns JobHandle Type Parameters TJob T0 T1 T2 T3 T4 T5 T6 T7"
|
|
},
|
|
"api/Ghost.Entities.ForEach-1.html": {
|
|
"href": "api/Ghost.Entities.ForEach-1.html",
|
|
"title": "Delegate ForEach<T0> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0>(ref T0 component0) where T0 : unmanaged, IComponent Parameters component0 T0 Type Parameters T0"
|
|
},
|
|
"api/Ghost.Entities.ForEach-2.html": {
|
|
"href": "api/Ghost.Entities.ForEach-2.html",
|
|
"title": "Delegate ForEach<T0, T1> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1>(ref T0 component0, ref T1 component1) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Parameters component0 T0 component1 T1 Type Parameters T0 T1"
|
|
},
|
|
"api/Ghost.Entities.ForEach-3.html": {
|
|
"href": "api/Ghost.Entities.ForEach-3.html",
|
|
"title": "Delegate ForEach<T0, T1, T2> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2>(ref T0 component0, ref T1 component1, ref T2 component2) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 Type Parameters T0 T1 T2"
|
|
},
|
|
"api/Ghost.Entities.ForEach-4.html": {
|
|
"href": "api/Ghost.Entities.ForEach-4.html",
|
|
"title": "Delegate ForEach<T0, T1, T2, T3> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2, T3> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2, T3>(ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 component3 T3 Type Parameters T0 T1 T2 T3"
|
|
},
|
|
"api/Ghost.Entities.ForEach-5.html": {
|
|
"href": "api/Ghost.Entities.ForEach-5.html",
|
|
"title": "Delegate ForEach<T0, T1, T2, T3, T4> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2, T3, T4> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2, T3, T4>(ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 Type Parameters T0 T1 T2 T3 T4"
|
|
},
|
|
"api/Ghost.Entities.ForEach-6.html": {
|
|
"href": "api/Ghost.Entities.ForEach-6.html",
|
|
"title": "Delegate ForEach<T0, T1, T2, T3, T4, T5> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2, T3, T4, T5> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2, T3, T4, T5>(ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 Type Parameters T0 T1 T2 T3 T4 T5"
|
|
},
|
|
"api/Ghost.Entities.ForEach-7.html": {
|
|
"href": "api/Ghost.Entities.ForEach-7.html",
|
|
"title": "Delegate ForEach<T0, T1, T2, T3, T4, T5, T6> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2, T3, T4, T5, T6> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2, T3, T4, T5, T6>(ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 Type Parameters T0 T1 T2 T3 T4 T5 T6"
|
|
},
|
|
"api/Ghost.Entities.ForEach-8.html": {
|
|
"href": "api/Ghost.Entities.ForEach-8.html",
|
|
"title": "Delegate ForEach<T0, T1, T2, T3, T4, T5, T6, T7> | GhostEngine",
|
|
"summary": "Delegate ForEach<T0, T1, T2, T3, T4, T5, T6, T7> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEach<T0, T1, T2, T3, T4, T5, T6, T7>(ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6, ref T7 component7) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Parameters component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 component7 T7 Type Parameters T0 T1 T2 T3 T4 T5 T6 T7"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-1.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-1.html",
|
|
"title": "Delegate ForEachWithEntity<T0> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0>(Entity entity, ref T0 component0) where T0 : unmanaged, IComponent Parameters entity Entity component0 T0 Type Parameters T0"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-2.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-2.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1>(Entity entity, ref T0 component0, ref T1 component1) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 Type Parameters T0 T1"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-3.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-3.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 Type Parameters T0 T1 T2"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-4.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-4.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2, T3> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2, T3> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2, T3>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 Type Parameters T0 T1 T2 T3"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-5.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-5.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2, T3, T4>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 Type Parameters T0 T1 T2 T3 T4"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-6.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-6.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2, T3, T4, T5>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 Type Parameters T0 T1 T2 T3 T4 T5"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-7.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-7.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 Type Parameters T0 T1 T2 T3 T4 T5 T6"
|
|
},
|
|
"api/Ghost.Entities.ForEachWithEntity-8.html": {
|
|
"href": "api/Ghost.Entities.ForEachWithEntity-8.html",
|
|
"title": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7> | GhostEngine",
|
|
"summary": "Delegate ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7> Namespace Ghost.Entities Assembly Ghost.Entities.dll public delegate void ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7>(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6, ref T7 component7) where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 component7 T7 Type Parameters T0 T1 T2 T3 T4 T5 T6 T7"
|
|
},
|
|
"api/Ghost.Entities.IComponent.html": {
|
|
"href": "api/Ghost.Entities.IComponent.html",
|
|
"title": "Interface IComponent | GhostEngine",
|
|
"summary": "Interface IComponent Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IComponent"
|
|
},
|
|
"api/Ghost.Entities.IEnableableComponent.html": {
|
|
"href": "api/Ghost.Entities.IEnableableComponent.html",
|
|
"title": "Interface IEnableableComponent | GhostEngine",
|
|
"summary": "Interface IEnableableComponent Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IEnableableComponent : IComponent"
|
|
},
|
|
"api/Ghost.Entities.IJobChunk.html": {
|
|
"href": "api/Ghost.Entities.IJobChunk.html",
|
|
"title": "Interface IJobChunk | GhostEngine",
|
|
"summary": "Interface IJobChunk Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobChunk Methods Execute(ChunkView, ref readonly JobExecutionContext) void Execute(ChunkView view, ref readonly JobExecutionContext ctx) Parameters view ChunkView ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-1.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-1.html",
|
|
"title": "Interface IJobEntity<T0> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0> where T0 : unmanaged, IComponent Type Parameters T0 Methods Execute(Entity, ref T0, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-2.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-2.html",
|
|
"title": "Interface IJobEntity<T0, T1> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Type Parameters T0 T1 Methods Execute(Entity, ref T0, ref T1, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-3.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-3.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Type Parameters T0 T1 T2 Methods Execute(Entity, ref T0, ref T1, ref T2, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-4.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-4.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2, T3> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2, T3> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2, T3> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 Methods Execute(Entity, ref T0, ref T1, ref T2, ref T3, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-5.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-5.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2, T3, T4> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2, T3, T4> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2, T3, T4> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 Methods Execute(Entity, ref T0, ref T1, ref T2, ref T3, ref T4, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-6.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-6.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2, T3, T4, T5> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2, T3, T4, T5> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2, T3, T4, T5> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 Methods Execute(Entity, ref T0, ref T1, ref T2, ref T3, ref T4, ref T5, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-7.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-7.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2, T3, T4, T5, T6> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2, T3, T4, T5, T6> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2, T3, T4, T5, T6> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 Methods Execute(Entity, ref T0, ref T1, ref T2, ref T3, ref T4, ref T5, ref T6, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.IJobEntity-8.html": {
|
|
"href": "api/Ghost.Entities.IJobEntity-8.html",
|
|
"title": "Interface IJobEntity<T0, T1, T2, T3, T4, T5, T6, T7> | GhostEngine",
|
|
"summary": "Interface IJobEntity<T0, T1, T2, T3, T4, T5, T6, T7> Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface IJobEntity<T0, T1, T2, T3, T4, T5, T6, T7> where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent where T7 : unmanaged, IComponent Type Parameters T0 T1 T2 T3 T4 T5 T6 T7 Methods Execute(Entity, ref T0, ref T1, ref T2, ref T3, ref T4, ref T5, ref T6, ref T7, ref readonly JobExecutionContext) void Execute(Entity entity, ref T0 component0, ref T1 component1, ref T2 component2, ref T3 component3, ref T4 component4, ref T5 component5, ref T6 component6, ref T7 component7, ref readonly JobExecutionContext ctx) Parameters entity Entity component0 T0 component1 T1 component2 T2 component3 T3 component4 T4 component5 T5 component6 T6 component7 T7 ctx JobExecutionContext"
|
|
},
|
|
"api/Ghost.Entities.ISharedComponent.html": {
|
|
"href": "api/Ghost.Entities.ISharedComponent.html",
|
|
"title": "Interface ISharedComponent | GhostEngine",
|
|
"summary": "Interface ISharedComponent Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface ISharedComponent"
|
|
},
|
|
"api/Ghost.Entities.ISharedWarper.html": {
|
|
"href": "api/Ghost.Entities.ISharedWarper.html",
|
|
"title": "Interface ISharedWarper | GhostEngine",
|
|
"summary": "Interface ISharedWarper Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface ISharedWarper Properties Index int Index { get; set; } Property Value int"
|
|
},
|
|
"api/Ghost.Entities.ISystem.html": {
|
|
"href": "api/Ghost.Entities.ISystem.html",
|
|
"title": "Interface ISystem | GhostEngine",
|
|
"summary": "Interface ISystem Namespace Ghost.Entities Assembly Ghost.Entities.dll public interface ISystem Methods Cleanup(ref readonly SystemAPI) void Cleanup(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI Initialize(ref readonly SystemAPI) void Initialize(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI Update(ref readonly SystemAPI) void Update(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI"
|
|
},
|
|
"api/Ghost.Entities.ManagedEntity.html": {
|
|
"href": "api/Ghost.Entities.ManagedEntity.html",
|
|
"title": "Struct ManagedEntity | GhostEngine",
|
|
"summary": "Struct ManagedEntity Namespace Ghost.Entities Assembly Ghost.Entities.dll public record struct ManagedEntity : IEquatable<ManagedEntity> Implements IEquatable<ManagedEntity> Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields generation public int generation Field Value int id public int id Field Value int"
|
|
},
|
|
"api/Ghost.Entities.ManagedEntityRef.html": {
|
|
"href": "api/Ghost.Entities.ManagedEntityRef.html",
|
|
"title": "Struct ManagedEntityRef | GhostEngine",
|
|
"summary": "Struct ManagedEntityRef Namespace Ghost.Entities Assembly Ghost.Entities.dll public struct ManagedEntityRef : IComponent Implements IComponent Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Fields entity public ManagedEntity entity Field Value ManagedEntity"
|
|
},
|
|
"api/Ghost.Entities.QueryBuilder.html": {
|
|
"href": "api/Ghost.Entities.QueryBuilder.html",
|
|
"title": "Struct QueryBuilder | GhostEngine",
|
|
"summary": "Struct QueryBuilder Namespace Ghost.Entities Assembly Ghost.Entities.dll public ref struct QueryBuilder : IDisposable Implements IDisposable Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Constructors QueryBuilder() public QueryBuilder() Methods Build(World, bool) public Identifier<EntityQuery> Build(World world, bool dispose = true) Parameters world World dispose bool Returns Identifier<EntityQuery> BuildWithoutCache(World, AllocationHandle, bool) public EntityQuery BuildWithoutCache(World world, AllocationHandle allocationHandle, bool dispose = true) Parameters world World allocationHandle AllocationHandle dispose bool Returns EntityQuery Clear() public void Clear() Create() public static QueryBuilder Create() Returns QueryBuilder Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public readonly void Dispose() WithAbsent(params Span<Identifier<IComponent>>) public void WithAbsent(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithAbsent<T0>() Adds the specified component type(s) to the 'Absent' filter of the query. Targets entities that do not have any of the specified component types. [UnscopedRef] public ref QueryBuilder WithAbsent<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithAbsent<T0, T1>() Adds the specified component type(s) to the 'Absent' filter of the query. Targets entities that do not have any of the specified component types. [UnscopedRef] public ref QueryBuilder WithAbsent<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithAbsent<T0, T1, T2>() Adds the specified component type(s) to the 'Absent' filter of the query. Targets entities that do not have any of the specified component types. [UnscopedRef] public ref QueryBuilder WithAbsent<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithAll(params Span<Identifier<IComponent>>) public void WithAll(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithAllRW<T0>() Adds the specified component type(s) to the 'All' filter of the query and requires read-write access. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAllRW<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithAllRW<T0, T1>() Adds the specified component type(s) to the 'All' filter of the query and requires read-write access. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAllRW<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithAllRW<T0, T1, T2>() Adds the specified component type(s) to the 'All' filter of the query and requires read-write access. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAllRW<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithAll<T0>() Adds the specified component type(s) to the 'All' filter of the query. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAll<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithAll<T0, T1>() Adds the specified component type(s) to the 'All' filter of the query. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAll<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithAll<T0, T1, T2>() Adds the specified component type(s) to the 'All' filter of the query. Targets entities that have all of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAll<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithAny(params Span<Identifier<IComponent>>) public void WithAny(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithAny<T0>() Adds the specified component type(s) to the 'Any' filter of the query. Targets entities that have at least one of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAny<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithAny<T0, T1>() Adds the specified component type(s) to the 'Any' filter of the query. Targets entities that have at least one of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAny<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithAny<T0, T1, T2>() Adds the specified component type(s) to the 'Any' filter of the query. Targets entities that have at least one of the specified component types and those component(s) must be enabled. [UnscopedRef] public ref QueryBuilder WithAny<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithDisabled(params Span<Identifier<IComponent>>) public void WithDisabled(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithDisabled<T0>() Adds the specified component type(s) to the 'Disabled' filter of the query. Targets entities that have all of the specified component types and those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithDisabled<T0>() where T0 : unmanaged, IEnableableComponent Returns QueryBuilder Type Parameters T0 WithDisabled<T0, T1>() Adds the specified component type(s) to the 'Disabled' filter of the query. Targets entities that have all of the specified component types and those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithDisabled<T0, T1>() where T0 : unmanaged, IEnableableComponent where T1 : unmanaged, IEnableableComponent Returns QueryBuilder Type Parameters T0 T1 WithDisabled<T0, T1, T2>() Adds the specified component type(s) to the 'Disabled' filter of the query. Targets entities that have all of the specified component types and those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithDisabled<T0, T1, T2>() where T0 : unmanaged, IEnableableComponent where T1 : unmanaged, IEnableableComponent where T2 : unmanaged, IEnableableComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithNone(params Span<Identifier<IComponent>>) public void WithNone(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithNone<T0>() Adds the specified component type(s) to the 'None' filter of the query. Targets entities that do not have any of the specified component types, or those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithNone<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithNone<T0, T1>() Adds the specified component type(s) to the 'None' filter of the query. Targets entities that do not have any of the specified component types, or those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithNone<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithNone<T0, T1, T2>() Adds the specified component type(s) to the 'None' filter of the query. Targets entities that do not have any of the specified component types, or those component(s) are disabled. [UnscopedRef] public ref QueryBuilder WithNone<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithPresent(params Span<Identifier<IComponent>>) public void WithPresent(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithPresentRW(params Span<Identifier<IComponent>>) public void WithPresentRW(params Span<Identifier<IComponent>> componentIDs) Parameters componentIDs Span<Identifier<IComponent>> WithPresentRW<T0>() Adds the specified component type(s) to the 'Present' filter of the query and requires read-write access. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresentRW<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithPresentRW<T0, T1>() Adds the specified component type(s) to the 'Present' filter of the query and requires read-write access. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresentRW<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithPresentRW<T0, T1, T2>() Adds the specified component type(s) to the 'Present' filter of the query and requires read-write access. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresentRW<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2 WithPresent<T0>() Adds the specified component type(s) to the 'Present' filter of the query. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresent<T0>() where T0 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 WithPresent<T0, T1>() Adds the specified component type(s) to the 'Present' filter of the query. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresent<T0, T1>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 WithPresent<T0, T1, T2>() Adds the specified component type(s) to the 'Present' filter of the query. Targets entities that have all of the specified component types, regardless of whether those component(s) are enabled or disabled. [UnscopedRef] public ref QueryBuilder WithPresent<T0, T1, T2>() where T0 : unmanaged, IComponent where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent Returns QueryBuilder Type Parameters T0 T1 T2"
|
|
},
|
|
"api/Ghost.Entities.RequireComponentAttribute-1.html": {
|
|
"href": "api/Ghost.Entities.RequireComponentAttribute-1.html",
|
|
"title": "Class RequireComponentAttribute<T> | GhostEngine",
|
|
"summary": "Class RequireComponentAttribute<T> Namespace Ghost.Entities Assembly Ghost.Entities.dll [AttributeUsage(AttributeTargets.Struct)] public class RequireComponentAttribute<T> : Attribute where T : unmanaged, IComponent Type Parameters T Inheritance object Attribute RequireComponentAttribute<T> Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties RequiredType public Type RequiredType { get; } Property Value Type"
|
|
},
|
|
"api/Ghost.Entities.ScriptComponent.html": {
|
|
"href": "api/Ghost.Entities.ScriptComponent.html",
|
|
"title": "Class ScriptComponent | GhostEngine",
|
|
"summary": "Class ScriptComponent Namespace Ghost.Entities Assembly Ghost.Entities.dll public abstract class ScriptComponent Inheritance object ScriptComponent Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Entity public Entity Entity { get; } Property Value Entity ManagedEntity public ManagedEntity ManagedEntity { get; } Property Value ManagedEntity World public World World { get; } Property Value World Methods FixedUpdate() public virtual void FixedUpdate() GetComponent<T>() protected ref T GetComponent<T>() where T : unmanaged, IComponent Returns T Type Parameters T LateUpdate() public virtual void LateUpdate() OnCreate() public virtual void OnCreate() OnDestroy() public virtual void OnDestroy() OnDisable() public virtual void OnDisable() OnEnable() public virtual void OnEnable() Start() public virtual void Start() Update() public virtual void Update()"
|
|
},
|
|
"api/Ghost.Entities.Shared-1.html": {
|
|
"href": "api/Ghost.Entities.Shared-1.html",
|
|
"title": "Struct Shared<T> | GhostEngine",
|
|
"summary": "Struct Shared<T> Namespace Ghost.Entities Assembly Ghost.Entities.dll public struct Shared<T> : IComponent, ISharedWarper where T : unmanaged, ISharedComponent Type Parameters T Implements IComponent ISharedWarper Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Index public int Index { readonly get; set; } Property Value int"
|
|
},
|
|
"api/Ghost.Entities.SystemAPI.html": {
|
|
"href": "api/Ghost.Entities.SystemAPI.html",
|
|
"title": "Struct SystemAPI | GhostEngine",
|
|
"summary": "Struct SystemAPI Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly ref struct SystemAPI Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties Time public TimeData Time { get; init; } Property Value TimeData World public World World { get; init; } Property Value World"
|
|
},
|
|
"api/Ghost.Entities.SystemBase.html": {
|
|
"href": "api/Ghost.Entities.SystemBase.html",
|
|
"title": "Class SystemBase | GhostEngine",
|
|
"summary": "Class SystemBase Namespace Ghost.Entities Assembly Ghost.Entities.dll public abstract class SystemBase : ISystem Inheritance object SystemBase Implements ISystem Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties LastSystemVersion public int LastSystemVersion { get; } Property Value int World public World World { get; init; } Property Value World Methods OnCleanup(ref readonly SystemAPI) protected virtual void OnCleanup(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI OnInitialize(ref readonly SystemAPI) protected virtual void OnInitialize(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI OnStartRunning() protected virtual void OnStartRunning() OnStopRunning() protected virtual void OnStopRunning() OnUpdate(ref readonly SystemAPI) protected virtual void OnUpdate(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI RequireQueryForUpdate(Identifier<EntityQuery>) protected void RequireQueryForUpdate(Identifier<EntityQuery> queryID) Parameters queryID Identifier<EntityQuery>"
|
|
},
|
|
"api/Ghost.Entities.SystemGroup.html": {
|
|
"href": "api/Ghost.Entities.SystemGroup.html",
|
|
"title": "Class SystemGroup | GhostEngine",
|
|
"summary": "Class SystemGroup Namespace Ghost.Entities Assembly Ghost.Entities.dll public abstract class SystemGroup : ISystem Inheritance object SystemGroup Implements ISystem Derived DefaultSystemGroup Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties World public World World { get; init; } Property Value World Methods AddSystem<T>() public void AddSystem<T>() where T : ISystem, new() Type Parameters T Cleanup(ref readonly SystemAPI) public void Cleanup(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI Initialize(ref readonly SystemAPI) public void Initialize(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI SortSystems() public void SortSystems() Update(ref readonly SystemAPI) public void Update(ref readonly SystemAPI systemAPI) Parameters systemAPI SystemAPI"
|
|
},
|
|
"api/Ghost.Entities.SystemGroupAttribute.html": {
|
|
"href": "api/Ghost.Entities.SystemGroupAttribute.html",
|
|
"title": "Class SystemGroupAttribute | GhostEngine",
|
|
"summary": "Class SystemGroupAttribute Namespace Ghost.Entities Assembly Ghost.Entities.dll [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct, AllowMultiple = false)] public class SystemGroupAttribute : Attribute Inheritance object Attribute SystemGroupAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors SystemGroupAttribute(Type) public SystemGroupAttribute(Type groupType) Parameters groupType Type Properties GroupType public Type GroupType { get; } Property Value Type"
|
|
},
|
|
"api/Ghost.Entities.SystemManager.html": {
|
|
"href": "api/Ghost.Entities.SystemManager.html",
|
|
"title": "Class SystemManager | GhostEngine",
|
|
"summary": "Class SystemManager Namespace Ghost.Entities Assembly Ghost.Entities.dll public sealed class SystemManager : IDisposable Inheritance object SystemManager Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Methods AddSystem<T>() public void AddSystem<T>() where T : ISystem, new() Type Parameters T Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() GetSystem<T>() public T GetSystem<T>() where T : ISystem Returns T Type Parameters T"
|
|
},
|
|
"api/Ghost.Entities.TimeData.html": {
|
|
"href": "api/Ghost.Entities.TimeData.html",
|
|
"title": "Struct TimeData | GhostEngine",
|
|
"summary": "Struct TimeData Namespace Ghost.Entities Assembly Ghost.Entities.dll public readonly struct TimeData Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Properties DeltaTime public float DeltaTime { get; init; } Property Value float ElapsedTime public double ElapsedTime { get; init; } Property Value double FrameCount public int FrameCount { get; init; } Property Value int"
|
|
},
|
|
"api/Ghost.Entities.UpdateAfterAttribute.html": {
|
|
"href": "api/Ghost.Entities.UpdateAfterAttribute.html",
|
|
"title": "Class UpdateAfterAttribute | GhostEngine",
|
|
"summary": "Class UpdateAfterAttribute Namespace Ghost.Entities Assembly Ghost.Entities.dll [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct, AllowMultiple = true)] public class UpdateAfterAttribute : Attribute Inheritance object Attribute UpdateAfterAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors UpdateAfterAttribute(Type) public UpdateAfterAttribute(Type systemType) Parameters systemType Type Properties SystemType public Type SystemType { get; } Property Value Type"
|
|
},
|
|
"api/Ghost.Entities.UpdateBeforeAttribute.html": {
|
|
"href": "api/Ghost.Entities.UpdateBeforeAttribute.html",
|
|
"title": "Class UpdateBeforeAttribute | GhostEngine",
|
|
"summary": "Class UpdateBeforeAttribute Namespace Ghost.Entities Assembly Ghost.Entities.dll [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct, AllowMultiple = true)] public class UpdateBeforeAttribute : Attribute Inheritance object Attribute UpdateBeforeAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors UpdateBeforeAttribute(Type) public UpdateBeforeAttribute(Type systemType) Parameters systemType Type Properties SystemType public Type SystemType { get; } Property Value Type"
|
|
},
|
|
"api/Ghost.Entities.World.html": {
|
|
"href": "api/Ghost.Entities.World.html",
|
|
"title": "Class World | GhostEngine",
|
|
"summary": "Class World Namespace Ghost.Entities Assembly Ghost.Entities.dll public class World : IDisposable, IEquatable<World> Inheritance object World Implements IDisposable IEquatable<World> Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties ComponentManager Gets the component manager for this world. public ComponentManager ComponentManager { get; } Property Value ComponentManager EntityCommandBuffer Gets the main entity command buffer for this world. public EntityCommandBuffer EntityCommandBuffer { get; } Property Value EntityCommandBuffer Remarks Use GetThreadLocalEntityCommandBuffer(int) to get thread-local command buffers for multi-threaded jobs. EntityManager Gets the publicntity manager for this world. public EntityManager EntityManager { get; } Property Value EntityManager ID Gets the unique identifier of this world. public Identifier<World> ID { get; } Property Value Identifier<World> JobScheduler Gets the job scheduler associated with this world. public JobScheduler? JobScheduler { get; } Property Value JobScheduler SystemManager Gets the system manager for this world. public SystemManager SystemManager { get; } Property Value SystemManager Version Gets the current version number of the world. public int Version { get; } Property Value int WorldCount public static int WorldCount { get; } Property Value int Methods AddService<T>(T) Registers or overwrites a global resource in the world. public void AddService<T>(T resource) where T : class Parameters resource T Type Parameters T Create(JobScheduler?, int) public static World Create(JobScheduler? jobScheduler = null, int entityCapacity = 16) Parameters jobScheduler JobScheduler entityCapacity int Returns World Destroy(Identifier<World>) public static void Destroy(Identifier<World> id) Parameters id Identifier<World> Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Equals(World?) Indicates whether the current object is equal to another object of the same type. public bool Equals(World? other) Parameters other World An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object?) Determines whether the specified object is equal to the current object. public override bool Equals(object? obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ~World() protected ~World() GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetService<T>() Retrieves a global resource from the world. public T GetService<T>() where T : class Returns T Type Parameters T GetThreadLocalEntityCommandBuffer(int) Gets the thread-local entity command buffer for the specified thread index. public EntityCommandBuffer GetThreadLocalEntityCommandBuffer(int threadIndex) Parameters threadIndex int Returns EntityCommandBuffer GetWorld(Identifier<World>) public static World? GetWorld(Identifier<World> id) Parameters id Identifier<World> Returns World GetWorldUncheck(Identifier<World>) public static World GetWorldUncheck(Identifier<World> id) Parameters id Identifier<World> Returns World HasService<T>() Checks if a global resource exists. public bool HasService<T>() where T : class Returns bool Type Parameters T Operators operator ==(World?, World?) public static bool operator ==(World? left, World? right) Parameters left World right World Returns bool operator !=(World?, World?) public static bool operator !=(World? left, World? right) Parameters left World right World Returns bool"
|
|
},
|
|
"api/Ghost.Entities.html": {
|
|
"href": "api/Ghost.Entities.html",
|
|
"title": "Namespace Ghost.Entities | GhostEngine",
|
|
"summary": "Namespace Ghost.Entities Classes ComponentManager ComponentTypeID<T> Provides a unique identifier for the specified unmanaged component space. DefaultSystemGroup EntityCommandBuffer EntityManager A manager for creating, destroying, and managing entities and their components. RequireComponentAttribute<T> ScriptComponent SystemBase SystemGroup SystemGroupAttribute SystemManager UpdateAfterAttribute UpdateBeforeAttribute World Structs ChunkView Provides a read-only view over a chunk of entities and their component data within an archetype. ComponentSet Represents an immutable set of component identifiers used to define a group of components within an entity or system. Entity EntityQuery EntityQuery.ChunkIterator Provides an enumerator for iterating over chunks of entities and their component data that match a set of archetypes within a world. EntityQuery.ChunkIterator.Enumerator EntityQuery.ComponentIterator<T0> EntityQuery.ComponentIterator<T0>.Enumerator EntityQuery.ComponentIterator<T0, T1> EntityQuery.ComponentIterator<T0, T1>.Enumerator EntityQuery.ComponentIterator<T0, T1>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2> EntityQuery.ComponentIterator<T0, T1, T2>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2, T3> EntityQuery.ComponentIterator<T0, T1, T2, T3>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2, T3>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2, T3, T4> EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2, T3, T4>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5> EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6> EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator EntityQuery.ComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem EntityQuery.EntityComponentIterator<T0> EntityQuery.EntityComponentIterator<T0>.Enumerator EntityQuery.EntityComponentIterator<T0>.QueryItem EntityQuery.EntityComponentIterator<T0, T1> EntityQuery.EntityComponentIterator<T0, T1>.Enumerator EntityQuery.EntityComponentIterator<T0, T1>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2> EntityQuery.EntityComponentIterator<T0, T1, T2>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2, T3> EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2, T3>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4> EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5> EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6> EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6>.QueryItem EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7> EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.Enumerator EntityQuery.EntityComponentIterator<T0, T1, T2, T3, T4, T5, T6, T7>.QueryItem ManagedEntity ManagedEntityRef QueryBuilder Shared<T> SystemAPI TimeData Interfaces IComponent IEnableableComponent IJobChunk IJobEntity<T0> IJobEntity<T0, T1> IJobEntity<T0, T1, T2> IJobEntity<T0, T1, T2, T3> IJobEntity<T0, T1, T2, T3, T4> IJobEntity<T0, T1, T2, T3, T4, T5> IJobEntity<T0, T1, T2, T3, T4, T5, T6> IJobEntity<T0, T1, T2, T3, T4, T5, T6, T7> ISharedComponent ISharedWarper ISystem Delegates ForEachWithEntity<T0> ForEachWithEntity<T0, T1> ForEachWithEntity<T0, T1, T2> ForEachWithEntity<T0, T1, T2, T3> ForEachWithEntity<T0, T1, T2, T3, T4> ForEachWithEntity<T0, T1, T2, T3, T4, T5> ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6> ForEachWithEntity<T0, T1, T2, T3, T4, T5, T6, T7> ForEach<T0> ForEach<T0, T1> ForEach<T0, T1, T2> ForEach<T0, T1, T2, T3> ForEach<T0, T1, T2, T3, T4> ForEach<T0, T1, T2, T3, T4, T5> ForEach<T0, T1, T2, T3, T4, T5, T6> ForEach<T0, T1, T2, T3, T4, T5, T6, T7>"
|
|
},
|
|
"docs/components.html": {
|
|
"href": "docs/components.html",
|
|
"title": "Components Overview | GhostEngine",
|
|
"summary": "Components Overview In GhostEngine, components are strict, unmanaged data structures. They must implement the empty interface IComponent (or its derivations). This ensures AOT compatibility and zero GC allocation overhead when iterating over millions of entities. Defining a Component To define a standard component, create an unmanaged struct implementing IComponent: using Ghost.Entities; using System.Numerics; public struct TransformComponent : IComponent { public Vector3 Position; public Quaternion Rotation; public Vector3 Scale; } Enableable Components Sometimes you need to toggle a component on or off without incurring the heavy structural cost of removing and re-adding the component from an entity. GhostEngine supports this via IEnableableComponent. public struct Renderable : IEnableableComponent { public int MeshID; public int MaterialID; } When iterating over an archetype chunk, you can check the bitmask to see if an entity's enableable component is currently active: // During a query chunk iteration: var renderables = chunkView.GetComponentData<Renderable>(); var enableBits = chunkView.GetEnableBits<Renderable>(); for (int i = 0; i < chunkView.EntityCount; i++) { if (chunkView.IsComponentEnabled<Renderable>(i)) { // Process active renderable } } Component Type IDs The engine assigns a unique runtime ID to each unmanaged component type. You can retrieve this identifier using the ComponentTypeID<T>.Value generic cache: Identifier<IComponent> id = ComponentTypeID<TransformComponent>.Value; This ID is heavily used under the hood for query masking, archetype matching, and memory offset calculations inside a chunk. RequireComponent Attribute You can enforce dependencies between components using the [RequireComponentAttribute<T>]. While this is mostly semantic, it helps structure dependencies for complex systems. [RequireComponent<TransformComponent>] public struct PhysicsCollider : IComponent { public float Radius; }"
|
|
},
|
|
"docs/ecs-concepts.html": {
|
|
"href": "docs/ecs-concepts.html",
|
|
"title": "ECS Concepts | GhostEngine",
|
|
"summary": "ECS Concepts GhostEngine's ECS implementation relies on several key concepts rooted in Data-Oriented Design. Understanding these concepts is essential to writing performant engine code and gameplay logic. World A World encapsulates all data and logic for an independent ECS simulation. It owns three core managers: EntityManager: Handles the creation, destruction, and structural modification of Entities. ComponentManager: Manages Archetypes and EntityQueries, keeping track of component memory layouts and chunk allocations. SystemManager: Manages the lifecycle and execution order of all Systems. Multiple Worlds can exist simultaneously (e.g., one for logic, one for rendering, or server/client splits in multiplayer). Entity An Entity in Ghost.Entities is not an object or a class; it is merely an integer ID (often accompanied by a version number). It serves as a lookup key to find a specific set of component data. Component A Component is a pure, unmanaged data structure (struct). It implements IComponent or IEnableableComponent. Components contain no logic. By restricting components to unmanaged types, the engine ensures they can be packed tightly into continuous blocks of memory (Chunks), entirely avoiding Garbage Collection (GC) overhead and ensuring fast CPU cache lines. Archetype and Chunks When you create an entity with a specific set of components (e.g., Position and Velocity), the ECS groups it into an Archetype. An Archetype represents a unique signature of components. Entities of the same Archetype have their component data stored in Chunks. A Chunk is a fixed-size block of unmanaged memory (e.g., 16KB). Instead of storing arrays of Entities containing objects (Array of Structures), the Chunk stores independent arrays for each component type (Structure of Arrays). This means when a system queries for Position, it receives a contiguous unmanaged memory Span<Position>, allowing the CPU to aggressively prefetch data and vectorize operations. System A System provides the logic that transforms component data from one state to the next. Systems iterate over matching Archetypes using EntityQuery and process component data in bulk. Systems can be managed manually or grouped into a SystemGroup which topologically sorts execution order based on dependencies."
|
|
},
|
|
"docs/ecs-workflows.html": {
|
|
"href": "docs/ecs-workflows.html",
|
|
"title": "ECS Workflows | GhostEngine",
|
|
"summary": "ECS Workflows This document outlines standard daily workflows for working within GhostEngine's ECS. Creating Entity Queries To read or modify data, you first build an EntityQuery. You use the QueryBuilder struct to define inclusion and exclusion constraints. Identifier<EntityQuery> queryId = QueryBuilder.Create() .WithAll<Position>() // Must have Position .WithAny<Player, Enemy>() // Must have Player OR Enemy .WithNone<Dead>() // Must NOT have Dead structurally .WithDisabled<Renderable>() // Must have Renderable structurally, but it must be disabled .Build(world); Queries are hashed and cached internally by the ComponentManager. Building the same query mask twice will yield the same Identifier<EntityQuery>. Iterating Chunk Views Once you have a query, use GetChunkIterator() to traverse the unmanaged memory directly. This returns a ChunkView struct. Because the data is unmanaged, you can extract Span<T> and modify it with extreme speed. ref var query = ref world.ComponentManager.GetEntityQueryReference(queryId); foreach (var chunkView in query.GetChunkIterator()) { // Get Read-Only Span ReadOnlySpan<Velocity> vels = chunkView.GetComponentData<Velocity>(); // Get Read-Write Span Span<Position> pos = chunkView.GetComponentDataRW<Position>(); // For loop for cache-aligned processing for (int i = 0; i < chunkView.EntityCount; i++) { pos[i].Value += vels[i].Value * dt; } } Note: Accessing data using GetComponentDataRW<T>() will automatically bump the internal version numbers for that component type in that specific chunk, allowing other systems to detect changes efficiently. Entity Command Buffers (Structural Changes) In ECS, structural changes (adding/removing components, destroying entities) reorganize chunk memory. Doing this while iterating over chunks invalidates the memory layout. To safely defer structural changes, use an EntityCommandBuffer. // Get the world's main ECB var ecb = world.EntityCommandBuffer; foreach (var chunk in query.GetChunkIterator()) { var entities = chunk.GetEntities(); var healths = chunk.GetComponentData<Health>(); for (int i = 0; i < chunk.EntityCount; i++) { if (healths[i].Value <= 0) { // Defer the destruction until Playback() is called ecb.DestroyEntity(entities[i]); } } } At the end of the frame (or the end of the system group update), you must call: world.PlaybackEntityCommandBuffers(); Multi-threading ECBs When using the JobScheduler, you can record deferred commands across multiple worker threads concurrently by requesting thread-local ECBs: int workerIndex = JobScheduler.CurrentThreadIndex; var threadEcb = world.GetThreadLocalEntityCommandBuffer(workerIndex); // Safely record structural changes from parallel jobs threadEcb.AddComponent<Dead>(entity);"
|
|
},
|
|
"docs/getting-started.html": {
|
|
"href": "docs/getting-started.html",
|
|
"title": "Getting Started with Ghost.Entities | GhostEngine",
|
|
"summary": "Getting Started with Ghost.Entities GhostEngine's Entity Component System (ECS) is a high-performance, Data-Oriented architecture designed for C# .NET 10. The ECS runtime is strictly AOT-compatible and focuses on unmanaged data structures to maximize cache locality and performance. Initialization The core of the ECS is the World. A World contains an EntityManager, ComponentManager, and SystemManager. To get started, you must create a World: using Ghost.Entities; // Create a new World with a default entity capacity of 16 World world = World.Create(); Creating Entities and Adding Components Entities are simply IDs that point to a combination of components. You use the EntityManager to create and modify them. First, define your unmanaged components: public struct Position : IComponent { public float X, Y, Z; } public struct Velocity : IComponent { public float X, Y, Z; } Then, create entities and attach components: using Ghost.Core; using Misaki.HighPerformance.LowLevel.Buffer; // Creating a ComponentSet for fast archetype initialization using var scope = AllocationManager.CreateStackScope(); var componentSet = new ComponentSet( scope.AllocationHandle, ComponentTypeID<Position>.Value, ComponentTypeID<Velocity>.Value ); // Create 1000 entities with both Position and Velocity world.EntityManager.CreateEntities(1000, componentSet); Adding Systems and Updating Systems contain the logic that operates on the component data. You add systems to the SystemManager and run them inside a loop. // Get the DefaultSystemGroup to attach systems var group = world.SystemManager.GetSystem<DefaultSystemGroup>(); // Add custom systems group.AddSystem<MovementSystem>(); // Sort systems based on their dependencies group.SortSystems(); // Initialize all systems world.SystemManager.InitializeAll(new TimeData()); // Update loop while (running) { world.SystemManager.UpdateAll(timeData); world.PlaybackEntityCommandBuffers(); } // Cleanup at the end world.Dispose(); Summary In GhostEngine ECS: World manages the lifecycle of your ECS data. Components (IComponent) are unmanaged data structures. Entities are logical containers combining those components into archetypes. Systems (SystemBase) execute logic over arrays of components using EntityQuery."
|
|
},
|
|
"docs/performance.html": {
|
|
"href": "docs/performance.html",
|
|
"title": "Performance and Memory | GhostEngine",
|
|
"summary": "Performance and Memory GhostEngine's ECS is explicitly designed around maximum CPU efficiency and AOT compatibility. Structure of Arrays (SoA) Traditional OOP patterns use Arrays of Structures (AoS), which causes cache misses when looping through objects to read a single field. GhostEngine ECS uses Structure of Arrays (SoA) at the chunk level. A 16KB unmanaged Chunk separates components into continuous blocks. When a System iterates a ChunkView and calls GetComponentData<Position>(), it receives a contiguous Span<Position>. Because modern CPUs pre-fetch continuous memory aggressively, an ECS query can be up to orders of magnitude faster than naive OOP equivalents. Benchmark Example The internal Ghost.Entities.Test benchmarks demonstrate the raw speed comparison: // OOP Approach (~4000ns) for (var i = 0; i < _gameObjects.Length; i++) { _gameObjects[i].Position += new Vector4(_dt, _dt, _dt, 0); } // ECS Approach (~620ns) ref var query = ref _world.ComponentManager.GetEntityQueryReference(_queryIdentifier); foreach (var chunkView in query.GetChunkIterator()) { var positions = chunkView.GetComponentDataRW<Position>(); ref var address = ref MemoryMarshal.GetReference(positions); for (var i = 0; i < positions.Length; i++) { Unsafe.Add(ref address, i).value += new Vector4(_dt, _dt, _dt, 0); } } Results for 1,000,000 Entities: Over 98.5% cache hits Approximately 4x to 6x faster execution times 0 Bytes allocated per frame (Zero Garbage Collection) Versioning and Change Tracking Chunks maintain atomic version counters. Whenever GetComponentDataRW<T>() is called, the chunk updates its component version to match the current World.Version. Systems can rapidly bypass entire chunks without iterating them by checking chunkView.HasChanged<T>(LastSystemVersion). This enables dirty-flag processing at near-zero cost. Unmanaged Constraints To guarantee this performance, the engine strictly enforces unmanaged types. You cannot put string, class, or managed arrays inside IComponent. For bulk temporary allocations during system updates, you should use VirtualStack.Scope or AllocationManager alongside UnsafeList<T> to remain entirely off the .NET Garbage Collector heap."
|
|
},
|
|
"docs/systems.html": {
|
|
"href": "docs/systems.html",
|
|
"title": "Systems Overview | GhostEngine",
|
|
"summary": "Systems Overview Systems are where all your ECS logic lives. They interact with data by iterating over entities that match an EntityQuery. The ISystem Interface At its core, a system implements ISystem, which provides three lifecycle methods: public interface ISystem { void Initialize(ref readonly SystemAPI systemAPI); void Update(ref readonly SystemAPI systemAPI); void Cleanup(ref readonly SystemAPI systemAPI); } The SystemAPI struct provides access to the World and TimeData for the current frame. SystemBase For most gameplay code, you should inherit from the abstract class SystemBase, which provides convenient wrappers and handles \"Should Update\" logic automatically. public class MovementSystem : SystemBase { private Identifier<EntityQuery> _query; protected override void OnInitialize(ref readonly SystemAPI systemAPI) { // Build a query for entities that have both Position and Velocity _query = new QueryBuilder() .WithAllRW<Position>() .WithAll<Velocity>() .Build(World); // Tell the system base to ONLY run OnUpdate if this query has at least 1 entity RequireQueryForUpdate(_query); } protected override void OnUpdate(ref readonly SystemAPI systemAPI) { float dt = systemAPI.Time.DeltaTime; ref var query = ref World.ComponentManager.GetEntityQueryReference(_query); foreach (var chunk in query.GetChunkIterator()) { var positions = chunk.GetComponentDataRW<Position>(); var velocities = chunk.GetComponentData<Velocity>(); for (int i = 0; i < chunk.EntityCount; i++) { positions[i].Value += velocities[i].Value * dt; } } } } Automatic Update Triggers Notice the RequireQueryForUpdate(_query) call. SystemBase will skip calling OnUpdate if the query results are completely empty, saving processing time. SystemBase also invokes OnStartRunning and OnStopRunning when the system transitions between having matching entities and not. System Execution Order By default, systems execute in the order they are added to a SystemGroup. To enforce execution order regardless of initialization sequence, use the [UpdateAfter] and [UpdateBefore] attributes. [UpdateAfter(typeof(PhysicsSystem))] [UpdateBefore(typeof(RenderSystem))] public class MovementSystem : SystemBase { // ... } When you call group.SortSystems(), the SystemGroup uses Kahn's algorithm to perform a topological sort and resolves these dependencies. If circular dependencies are detected, the engine will throw an exception. System Groups SystemGroups implement ISystem themselves, meaning you can nest groups within groups to build complex hierarchical update loops (e.g. FixedUpdateGroup, PresentationGroup). GhostEngine provides a DefaultSystemGroup that is automatically instantiated by the SystemManager."
|
|
},
|
|
"index.html": {
|
|
"href": "index.html",
|
|
"title": "This is the HOMEPAGE. | GhostEngine",
|
|
"summary": "This is the HOMEPAGE. Refer to Markdown for how to write markdown files. Quick Start Notes: Add images to the images folder if the file is referencing an image."
|
|
},
|
|
"meshlet-architecture.html": {
|
|
"href": "meshlet-architecture.html",
|
|
"title": "GhostEngine Meshlet Architecture | GhostEngine",
|
|
"summary": "GhostEngine Meshlet Architecture This document explains the meshlet system planned for GhostEngine before we implement it. The goal is not just to describe what the engine will do, but why the design looks this way, how the pieces connect, and what tradeoffs we are intentionally making. The intended result is a GPU-driven meshlet pipeline that is: high performance data oriented compatible with the current GhostEngine resource model friendly to bindless material evaluation understandable enough that future changes are deliberate instead of accidental This is a design document, not a promise that every detail is final forever. But it is the architecture we should implement unless we discover a concrete reason to deviate. 1. What problem are we solving? Traditional mesh rendering usually looks like this: CPU decides which objects to draw. CPU submits one or more draw calls per mesh or submesh. GPU fetches vertices and indices for the selected draw calls. LOD is usually selected per object, not per localized part of the mesh. That model becomes limiting when scene complexity grows: CPU draw submission becomes expensive. Large meshes are hard to cull efficiently because only the whole object is considered. Per-submesh material splitting adds authoring and runtime complexity. Object-level LOD wastes detail: one visible corner of a huge object may force the whole object to render at a high LOD. Meshlets solve a different granularity problem. A meshlet is a small cluster of triangles with a small local vertex set. Instead of treating a mesh as a single index buffer plus a few submeshes, we treat it as many tiny, spatially bounded clusters that can be culled, selected, and dispatched more precisely. For GhostEngine, meshlets are attractive because they line up with the rest of the engine direction: GPU-driven rendering bindless resources visibility buffer first, material shading later mesh shader capable pipeline The meshlet system is not just \"smaller draw calls\". It becomes the unit of: visibility testing LOD selection material lookup mesh shader dispatch future streaming 2. Pipeline at a glance At a high level the full flow looks like this: Imported mesh | v Split triangles by material | v Build LOD0 meshlets with meshoptimizer | v Group nearby meshlets | v Simplify each group into a coarser representation | v Rebuild coarser meshlets | v Repeat until reduction becomes negligible | v Build hierarchy nodes over groups for each LOD | v Connect all LOD hierarchies into one DAG-like refinement structure | v Upload meshlet data + hierarchy + lookup buffers to GPU | v GPU culling pass traverses hierarchy | v Visible meshlets emitted to visible meshlet list | v Mesh shader rasterizes visible meshlets into VBuffer | v GBuffer resolve reads material through palette indirection | v Deferred lighting There are really two major phases: offline or asset-build phase: turn a mesh into meshlet data runtime phase: decide which meshlets to render this frame Those two phases should be designed together. If the runtime needs fast decisions, the build phase must produce data that makes those decisions cheap. 3. Why GhostEngine uses meshlets the way it does Some design choices are already settled. 3.1 Meshlet size GhostEngine will use: max 64 vertices per meshlet max 124 triangles per meshlet These are meshoptimizer's common defaults and are a better starting point for this engine than Nyx's 128/128 choice. Why this matters: 64 unique vertices fits naturally in a byte-addressable local index space. 124 triangles keeps the meshlet compact while leaving room for efficient packing. Smaller clusters improve culling granularity. These limits are already well-supported by meshoptimizer APIs. This does mean more meshlets than a larger cluster size, but that is acceptable because GhostEngine is explicitly building a GPU-driven pipeline where fine-grained culling is a feature, not a problem. 3.2 Meshlets are material-local Each meshlet belongs to exactly one material slot and stores: localMaterialIndex This replaces the need for a SubMesh concept in the new pipeline. Instead of saying \"this mesh has N submeshes\", we say: this mesh has a material palette each meshlet points to one entry in that palette That means material boundaries matter during meshlet generation. Triangles from two different materials must not be merged into the same meshlet. 3.3 Full hierarchy from the start We are not building only LOD0 first and layering hierarchy later. The target design starts with the full refinement hierarchy. Reason: the runtime culling logic depends on more than per-meshlet visibility LOD selection is fundamentally part of the data structure, not just a later optimization future streaming also wants group and hierarchy metadata If we postponed hierarchy design, we would likely create temporary formats that have to be thrown away. 3.4 Visibility buffer pipeline compatibility GhostEngine's render plan is: VBuffer pass writes visibility GBuffer resolve classifies materials and evaluates them through bindless resources Deferred lighting consumes the resolved data That means meshlet rendering should output enough information to identify: object or instance primitive or triangle identity if needed material identity through indirection The meshlet stage should stay focused on visibility and primitive emission. Material evaluation belongs later. 4. Existing engine context this design must fit The meshlet system does not exist in a vacuum. It has to fit the current GhostEngine architecture. 4.1 Resource ownership and handles GhostEngine uses Handle<T> backed by UnsafeSlotMap<T>. This means: resources are identified indirectly validity uses ID + Generation stale handles can be detected That is good for mesh and material lifetime, but it also means runtime GPU data must not rely on direct managed object references. 4.2 Current mesh representation Current Mesh lives in src/Runtime/Ghost.Graphics/Core/Mesh.cs and already stores: CPU vertex data CPU index data mesh bounding box GPU vertex/index buffers stub meshlet data The existing MeshLet struct is only a placeholder. It is not enough for the planned runtime because it lacks: sphere bounds group linkage hierarchy linkage LOD metadata parent error data So the current meshlet stub should be treated as disposable scaffolding. 4.3 Root signature and object data Current root constants and object data are simple: PushConstantsData in src/Runtime/Ghost.Graphics.RHI/RootSignatureLayout.cs PerObjectData includes localToWorld, object bounds, vertex buffer index, index buffer index This is enough for the current direct mesh path, but the meshlet path will eventually need additional GPU-readable data, likely through structured buffers rather than larger push constants. That is the correct direction. Push constants should remain tiny and hot. 4.4 Material palette system GhostEngine already has the right CPU-side material indirection direction via src/Runtime/Ghost.Graphics/Core/MaterialPaletteStore.cs. This was an important architectural decision. We rejected: ECS shared component material lists because they fragment chunks per-instance full material arrays because they waste memory We chose: deduplicated material palettes one materialPaletteIndex per instance This is exactly what the meshlet pipeline wants. 5. Core data model The runtime data should be designed first from the GPU's perspective, then mirrored cleanly in C#. The proposed structures are intentionally compact, unmanaged, and GPU-friendly. 5.1 Meshlet Planned size: 64 bytes [StructLayout(LayoutKind.Sequential, Size = 64)] public struct Meshlet { public SphereBounds boundingSphere; // 16 bytes public AABB boundingBox; // 24 bytes public uint vertexOffset; // offset into meshlet vertex index array public uint triangleOffset; // offset into packed triangle array public byte vertexCount; // max 64 public byte triangleCount; // max 124 public byte localMaterialIndex; // mesh-local material slot public byte lodLevel; // this meshlet's LOD level public uint groupIndex; // owning group public float parentError; // geometric refinement error carried into runtime LOD tests } What this struct needs to answer quickly: where are my local vertices? where are my local triangles? how many are there? what material do I use? what bounds do I test? what LOD level am I part of? what group owns me? how much geometric error does this representation introduce? Why both sphere and AABB? sphere is cheap and stable for LOD/error calculations AABB is useful for frustum and occlusion tests Why store groupIndex in each meshlet if groups also store meshlet ranges? reverse lookup is sometimes cheaper than reconstructing ownership the GPU often prefers direct indexing over inference 5.2 MeshletGroup Planned size: 64 bytes [StructLayout(LayoutKind.Sequential, Size = 64)] public struct MeshletGroup { public SphereBounds boundingSphere; // 16 bytes public AABB boundingBox; // 24 bytes public float parentError; // error of refining to the previous level public uint meshletStartIndex; // contiguous meshlet range public uint meshletCount; // number of meshlets in the group public uint lodLevel; // group LOD level } Groups are important because we do not simplify single meshlets independently. We simplify collections of neighboring meshlets. That gives us: better local continuity a meaningful refinement unit a more stable hierarchy than treating every meshlet in isolation Conceptually: a meshlet is a renderable unit a group is a simplification and refinement unit 5.3 MeshletHierarchyNode Planned size: 48 bytes [StructLayout(LayoutKind.Sequential, Size = 48)] public struct MeshletHierarchyNode { public SphereBounds boundingSphere; // 16 bytes public AABB boundingBox; // 24 bytes public float maxParentError; // maximum error in this subtree public uint nodeData; // packed leaf/internal metadata } nodeData follows the Nyx-style packed convention because it is compact and GPU-friendly. Internal node encoding: bit 0 = 0 bits 1..27 = child start index bits 28..31 = child count Leaf node encoding: bit 0 = 1 bits 1..24 = group index bits 25..31 = meshlet count minus one Why pack it? smaller memory footprint fewer GPU loads predictable layout easy to mirror in HLSL Why is maxParentError stored on the node? Because hierarchy traversal should be able to reject an entire subtree if its current LOD is already good enough. That requires a coarse upper bound on the subtree's refinement error. 5.4 MeshletMeshData Planned role: CPU-side container for all meshlet-related arrays belonging to one mesh public struct MeshletMeshData : IDisposable { public UnsafeList<Meshlet> meshlets; public UnsafeList<MeshletGroup> groups; public UnsafeList<MeshletHierarchyNode> hierarchyNodes; public UnsafeList<uint> meshletVertices; public UnsafeList<byte> meshletTriangles; public int lodLevelCount; public int materialSlotCount; } This is not just \"some extra arrays\". It is the authored runtime representation of the mesh in meshlet form. The important separation is: Vertices and Indices still describe the original mesh data MeshletMeshData describes how the runtime consumes that mesh for clustered rendering 5.5 Why SphereBounds and AABB GhostEngine should use the existing math library types from Misaki.HighPerformance.Mathematics.Geometry: SphereBounds = 16 bytes AABB = 24 bytes This avoids inventing yet another geometry representation and keeps math behavior consistent across the engine. 6. Material model: why no SubMesh In many engines, a mesh is split into submeshes so each material can be drawn separately. That model is awkward for a meshlet pipeline because: submesh boundaries are coarse draw-call-oriented organization leaks into GPU-driven rendering authoring concepts become runtime constraints GhostEngine's material palette model is better. The intended lookup chain is: Mesh instance -> materialPaletteIndex -> PaletteOffsetBuffer[materialPaletteIndex] -> base offset into MaterialIndexBuffer -> MaterialIndexBuffer[baseOffset + meshlet.localMaterialIndex] -> bindless material / material buffer index This means: many instances can share the same material palette each meshlet only needs a tiny local material index no ECS chunk fragmentation from large shared material lists no need for a separate submesh draw path The key rule during build is simple: meshlet generation must never combine triangles with different local material indices So the build pipeline is free to partition inside a material region, but not across material boundaries. 7. Build pipeline in detail This is the most important part to understand because runtime behavior is shaped by how the asset is built. 7.1 Input assumptions A source mesh provides at least: vertex buffer index buffer triangle-to-material assignment or equivalent material ranges The meshlet builder must transform that into: LOD0 meshlets progressively coarser meshlet groups and meshlets a hierarchy for traversal per-level error metrics 7.2 Step 1: split by material Before anything else, the builder conceptually partitions triangle sets by localMaterialIndex. This does not necessarily mean creating physically separate mesh objects. It means the cluster builder treats triangles from different materials as incompatible. If we fail this step, we break the whole material indirection model because one meshlet would need more than one material. 7.3 Step 2: generate a position remap Use meshopt_generatePositionRemap from Ghost.MeshOptimizer. Purpose: detect vertices that share the same position even if attributes differ later lock simplification boundaries so cracks do not appear Why position remap matters: In real meshes, one logical corner may appear as multiple vertices because normals, tangents, UVs, or colors differ. If simplification ignores this relationship, one side of a seam can collapse differently than the other, producing holes or cracks. Position remap tells us which duplicated vertices are spatially the same point. 7.4 Step 3: build LOD0 meshlets For each material-local triangle set, build meshlets using meshopt_buildMeshletsFlex. Why buildMeshletsFlex instead of only buildMeshlets: more control over triangle fill behavior better fit for tuning cluster quality matches the studied Nyx direction Then optimize each meshlet with meshopt_optimizeMeshlet. For each generated meshlet compute: sphere bounds AABB Use: meshopt_computeMeshletBounds where useful engine-side AABB construction from referenced vertices At the end of this step, we have the finest renderable representation. Important: LOD0 meshlets are not enough. They are only the starting layer. 7.5 Step 4: create attribute protection locks This step marks vertices that should not be simplified across attribute discontinuities. Typical discontinuity causes: hard normals UV seams tangent basis changes duplicated vertices sharing position but not full attributes This lock data feeds meshopt_simplifyWithAttributes. Conceptually, we are saying: some vertices may occupy the same place but they are not interchangeable for surface appearance 7.6 Step 5: group neighboring meshlets Meshlets are grouped into local neighborhoods before simplification. Use meshopt_partitionClusters to create spatially coherent meshlet groups. Target size should start around the Nyx-like range of roughly a few dozen meshlets per group, then be tuned later. Why group first? simplification needs enough local context to create a meaningful coarser representation simplifying one meshlet at a time would produce unstable transitions groups become refinement units and future streaming units For each group, compute merged: bounding sphere bounding box 7.7 Step 6: build group boundary locks This is one of the most subtle steps. When simplifying a group, vertices shared across group boundaries should be locked appropriately. Otherwise one group may simplify differently than its neighbor, which creates discontinuities at the boundary. Position remap is used again here: if the same logical position appears in multiple groups and simplification in one group would move or remove it inconsistently we lock it This is a major reason the position-remap pass exists. 7.8 Step 7: simplify each group For each group: Gather unique global vertices referenced by that group's meshlets. Build a local working index buffer. Build local attribute streams. Run meshopt_simplifyWithAttributes. If the result is too poor or reduction is too aggressive, fall back to meshopt_simplifySloppy. Convert simplified local indices back to global mesh indices. Rebuild meshlets from the simplified result. This yields the next coarser LOD level. The output meshlets must remember what they refine from. In Nyx this is tracked as refine-group linkage; GhostEngine should keep the same concept even if naming differs slightly. That linkage is what turns a plain LOD stack into a refinement structure. 7.9 Step 8: assign and propagate error metrics Each coarser representation introduces geometric error relative to the finer representation it came from. That error becomes the core input for runtime LOD decisions. Important property: error must be monotonic enough for hierarchy traversal. In practice this means: child refinement should never look \"more expensive\" to refine than its parent in a way that breaks traversal assumptions group or node error often stores the maximum relevant error in its subtree If needed, error values should be clamped or merged conservatively so traversal can safely say: if this node is already good enough, the subtree is also good enough 7.10 Step 9: repeat until diminishing returns The builder repeats: group simplify rebuild meshlets assign errors Until one of the stop conditions is hit: reduction is too small to matter no valid coarser meshlets are produced the mesh has become trivially small This creates multiple LOD levels, not as separate full meshes, but as a connected refinement chain. 7.11 Step 10: build hierarchy nodes Once groups exist for each LOD, build hierarchy nodes over them. Nyx uses a BVH-like structure with up to 8 children per node. That is a good model for GhostEngine too. Desirable properties: each node bounds its descendants each node stores a conservative max error leaves reference meshlet groups nodes are flattened into arrays for GPU traversal Use meshopt_spatialClusterPoints or equivalent spatial ordering to cluster group centers before bottom-up node construction. 7.12 Step 11: flatten for GPU use The final asset format should become contiguous arrays suitable for GPU upload: Meshlet[] MeshletGroup[] MeshletHierarchyNode[] uint[] meshletVertices byte[] meshletTriangles Future streaming may serialize these in chunked blobs, but the in-memory model should already assume a flattened GPU-friendly layout. 8. Why this is described as a DAG even though the traversal looks like a BVH This is worth explaining carefully. The hierarchy nodes form a BVH-style tree over groups for culling. But the full refinement relationship across LODs behaves more like a DAG-style representation because: meshlets at one level are derived from groups at a finer level traversal makes decisions based on refinement eligibility, not just parent-child culling links the chosen rendered set is a cut through multiple linked levels of representation So when we say \"meshlet DAG\" in this document, we do not mean a generic arbitrary graph with random fan-in and fan-out. We mean: culling hierarchy is tree-like refinement relationships across LODs create a more general dependency structure than a single flat LOD chain The important mental model is not the exact graph theory label. The important mental model is: the runtime chooses one valid frontier of detail through linked coarse and fine representations 9. Runtime culling flow At runtime, the GPU should decide which meshlets are visible and at what detail level. The broad idea is inspired by Nyx's DAGCullCS.hlsl and CullCommon.hlsli. 9.1 Inputs to runtime culling Per frame, the culling pass needs at least: view/projection data object transform object world-space bounds hierarchy buffer group buffer meshlet buffer HZB or similar occlusion structure residency information if streaming is enabled 9.2 Node queue phase Traversal starts from the root hierarchy nodes for a mesh or instance. For each node: Frustum test the node bounds. Occlusion test the node bounds. Evaluate whether the node's represented detail is already sufficient. If not sufficient and visible, enqueue children. If leaf and visible, emit candidate meshlets or candidate groups. This is the first big optimization point. If a coarse node is invisible or already detailed enough, the entire subtree is skipped. 9.3 Meshlet candidate phase Candidate meshlets from visible leaf groups go through a finer pass: Per-meshlet frustum test Per-meshlet occlusion test Refinement test against finer group information Emit visible meshlet if it is the right representative for the current cut This second stage matters because leaf-group visibility does not guarantee every meshlet inside the group should render. 9.4 Two-pass occlusion idea Nyx uses two-pass HZB logic: pass 0 uses previous-frame HZB pass 1 uses current-frame HZB to recover cases that were conservatively hidden before This is useful because occlusion data always lags a little. GhostEngine should adopt the same conceptual model later, even if the first implementation starts simpler. The reason is practical: previous-frame HZB is immediately available and cheap current-frame HZB can improve correctness for newly visible regions 10. LOD selection: the part that usually feels confusing This is the part most people trip over on the first read. The runtime is not asking: \"which numbered LOD mesh do I choose for this object?\" Instead it is asking: \"is this representation already good enough on screen, or should I refine further?\" That is a refinement question, not a classic object-LOD switch. 10.1 Error-driven refinement Each group or meshlet carries an error measure that describes how wrong the current coarser representation could be compared to the next finer representation. At runtime we project that error into screen space. Conceptually: projectedError = f(distance, bounds, projection) If the projected error is small enough, the coarser version is acceptable. If the projected error is too large, we should refine. 10.2 Why sphere bounds help Using a sphere for LOD calculation is common because it gives a stable scalar distance proxy. Instead of reasoning about the whole box orientation, we can say: how far is the camera from the sphere surface? how much screen-space error would the stored geometric error create at that distance? This is one reason every meshlet and group stores a sphere. 10.3 The \"cut through the DAG\" The rendered set for a frame should form a valid frontier. That means: we do not render both a coarse group and all of its refined descendants at the same time we do not stop too early where detail is needed we do not refine too far where the extra detail is invisible The chosen set of visible, detail-appropriate meshlets is often described as a cut through the refinement DAG. This is a good term because it captures the idea that: some nearby parts of the same model may refine deeper some distant parts may stay coarse the final set is mixed across levels but still logically consistent 10.4 Mental model for one branch Imagine one branch of a large rock formation: very far away: coarse group is acceptable, stop early medium distance: refine once, use mid-detail meshlets very near: refine again, use fine meshlets Now imagine the left side of the rock is near the camera but the right side is distant or occluded. With meshlets, those branches can diverge naturally. That is the power of local refinement. 11. Frustum and occlusion testing The visibility tests should be conservative and cheap. 11.1 Frustum testing The hierarchy can use AABB-based frustum testing because it is conservative and maps well to clip-space checks. The exact implementation can evolve, but the principle is: reject only when definitely outside keep nodes when uncertain False positives are acceptable. False negatives are not. 11.2 HZB occlusion testing The occlusion test asks: is this bound fully behind already-known depth at an appropriate mip level? The hierarchy level matters here: coarse nodes should use conservative footprint-aware tests meshlets can use tighter tests The reason to use HZB at node level first is obvious once you picture cost: rejecting one node can remove dozens or hundreds of downstream meshlets 12. Mesh shader path Once visible meshlets are selected, the runtime dispatches mesh shaders instead of issuing classic indexed draw calls per submesh. The mesh shader's job is roughly: load the meshlet record load meshlet-local vertex indices gather source vertices from the mesh vertex buffer load packed triangle indices emit primitives write visibility payload for later passes The mesh shader should not do expensive material evaluation. That belongs to the later resolve stage. 12.1 Why this matches the VBuffer pipeline GhostEngine already wants: VBuffer first materials later That is ideal here because the mesh shader only needs to know enough to produce visibility. The later resolve pass can turn visibility information plus material indices into actual shaded surface data. This separation is important: geometry stage focuses on coverage and visibility shading stage focuses on material work 13. Material evaluation path at runtime The material lookup for a visible meshlet should conceptually work like this: Instance provides materialPaletteIndex Meshlet provides localMaterialIndex GPU resolves palette entry to actual material handle/index Resolve pass reads material constants/textures bindlessly This keeps material identity compact in the geometry stage. The meshlet only needs a local slot, not a full material object reference. That is exactly what we want in a data-oriented renderer. 14. Proposed GPU buffer families Exact buffer ownership may evolve, but the runtime likely wants at least these logical buffers: meshlet metadata buffer meshlet vertex remap buffer meshlet triangle buffer group buffer hierarchy node buffer visible meshlet output buffer instance-to-palette buffer or palette offset buffer material index indirection buffer One useful way to think about them is by update frequency. Mostly static per mesh: meshlet metadata remap buffer triangle buffer groups hierarchy Dynamic per frame: visible meshlet list indirect dispatch args culling queues Mostly static but shared across instances: material palette indirection data 15. Streaming implications Streaming is not the first implementation goal, but the architecture should not block it. Groups are the natural future streaming unit because they already bundle: local meshlet ranges bounds refinement meaning Nyx uses GroupDataLocation-style indirection so group payload can be resident or missing independently. GhostEngine does not have to build full streaming support on day one, but the design should leave room for: checking group residency during refinement rendering a coarser resident representation when a finer one is unavailable chunking serialized meshlet data by groups or LOD ranges This is another reason the refinement model matters. A coarse group can stand in for a missing finer group without inventing a separate fallback system. 16. Why the material palette decision was so important This deserves its own section because it connects rendering architecture to ECS architecture. If material lists had been stored as ECS shared components: chunk fragmentation would increase instance organization would depend on material palette uniqueness the CPU-side ECS layout would be distorted by a GPU-side lookup problem If material lists had been copied per instance: memory cost would scale badly updates would become noisy The chosen MaterialPaletteStore model avoids both problems. That means the meshlet renderer gets a clean contract: instance owns one palette index meshlet owns one local material index runtime resolves the pair This is one of the strongest architectural wins in the whole design. 17. Build responsibilities vs runtime responsibilities It helps to state this explicitly. Build phase responsibilities split triangles by material generate LOD0 meshlets detect position-equivalent vertices create protection locks group nearby meshlets simplify groups into coarser levels compute bounds and errors build hierarchy nodes flatten all arrays for runtime upload Runtime responsibilities upload meshlet data to GPU buffers transform object bounds to world space traverse hierarchy per view perform frustum and occlusion culling choose the appropriate refinement frontier emit visible meshlets dispatch mesh shader work resolve materials in later passes This split is important because it keeps frame-time logic simple. Runtime should consume prepared data, not rebuild meaning on the fly. 18. Planned implementation order The implementation should happen in a sequence that preserves understanding and debuggability. Phase 1: data structures Add new types for: Meshlet MeshletGroup MeshletHierarchyNode MeshletMeshData Also update Mesh so the old MeshLet stub is replaced by the real structure. Phase 2: meshoptimizer integration usage No native wrapper work is needed because Ghost.MeshOptimizer already exists. We only need to add the project reference and write the engine-side builder that uses the wrapper. Phase 3: CPU builder Implement MeshletBuilder that: reads a mesh partitions by material builds LOD0 meshlets builds groups and coarser levels emits final MeshletMeshData Phase 4: GPU upload path Create and upload buffers for: meshlets meshlet vertices meshlet triangles groups hierarchy palette indirection if not already mirrored on GPU Phase 5: GPU culling path Implement compute-based traversal and visible meshlet list generation. Start simple if needed, but the target direction is the hierarchy-driven refinement model described here. Phase 6: mesh shader VBuffer path Use visible meshlets to drive mesh shader dispatch and write the VBuffer. Phase 7: refinement and occlusion improvements Add: better LOD tuning two-pass HZB behavior residency logic for future streaming 19. Common failure modes to avoid This section is here because meshlet systems are easy to get mostly right but subtly wrong. 19.1 Mixing materials inside one meshlet This breaks the material model immediately. Rule: one meshlet, one localMaterialIndex. 19.2 Treating meshlets like tiny submeshes If we only use meshlets as a different way to package triangles but keep a CPU draw-submission mindset, we lose most of the benefit. Meshlets should be part of a GPU-driven visibility and refinement system. 19.3 Ignoring boundary locks during simplification This often causes visible cracks and is one of the classic simplification mistakes. 19.4 Using non-conservative bounds If bounds are too tight and a visible node is rejected, the error is catastrophic. Conservative false positives are far safer than false negatives. 19.5 Letting error metrics become inconsistent If hierarchy error values do not behave monotonically enough, refinement traversal becomes unstable and hard to reason about. 19.6 Overloading push constants The current root signature is tiny for a reason. Meshlet rendering should scale through structured buffers, not through ever-growing push constant payloads. 20. Glossary Meshlet A small cluster of triangles and the local vertex set needed to render them. Group A set of nearby meshlets treated as a simplification and refinement unit. LOD0 The finest generated meshlet representation. Parent error The geometric error introduced by using a coarser representation instead of refining to a finer one. Refinement Replacing a coarse representation with a finer one because projected error is too large. DAG cut The set of meshlets selected across the refinement structure that forms the final rendered detail frontier for the frame. HZB Hierarchical Z buffer used for conservative occlusion testing. Material palette A deduplicated list of materials shared across instances, referenced by materialPaletteIndex. localMaterialIndex A mesh-local slot inside the material palette used by one meshlet. 21. Final mental model If you only keep one model in your head, keep this one. GhostEngine is moving from: draw whole object or submesh to: build many small triangle clusters organize them into local refinement groups build a hierarchy over those groups let the GPU decide what is visible and how much detail is necessary shade materials later through bindless palette indirection So the system is really three ideas working together: meshlets give us fine-grained geometry units hierarchy plus error metrics give us scalable visibility and LOD selection material palettes let those units stay compact and GPU-friendly without polluting ECS layout If we implement those three ideas consistently, the result should be a renderer that is both fast and understandable. 22. Concrete next steps after this document After this document, the next code work should be: add the real meshlet structs replace the placeholder MeshLet path in src/Runtime/Ghost.Graphics/Core/Mesh.cs reference Ghost.MeshOptimizer from src/Runtime/Ghost.Graphics/Ghost.Graphics.csproj implement a CPU-side MeshletBuilder upload meshlet data to GPU buffers implement hierarchy-driven culling integrate mesh shader VBuffer rendering That order keeps the learning path clear: define the data, build the data, consume the data."
|
|
}
|
|
} |