Quantum 3
3.0.9
A multi-threaded system to parallelize updating components. More...
Public Member Functions | |
| sealed override void | OnInit (Frame f) |
| Is called when the system is initialized. | |
| abstract void | Update (FrameThreadSafe f, EntityRef entity, T *component) |
Public Member Functions inherited from Quantum.SystemBase | |
| SystemBase () | |
| Constructor. More... | |
| SystemBase (params SystemBase[] children) | |
| Create a new instance of a system with children. More... | |
| SystemBase (string scheduleSample) | |
| Create a new instance and setting the sample name. More... | |
| virtual void | OnDisabled (Frame f) |
| Is called when the system was disabled for example after Frame.SystemDisable(Type). More... | |
| virtual void | OnEnabled (Frame f) |
| Is called when the system was enabled for example after calling Frame.SystemEnable<T>() or during QuantumGame.InitSystems(Photon.Deterministic.DeterministicFrame). More... | |
| TaskHandle | OnSchedule (Frame f, TaskHandle taskHandle) |
| Creates the task graph for the system. More... | |
Public Attributes | |
| virtual int | SliceSize => DEFAULT_SLICE_SIZE |
Static Public Attributes | |
| const int | DEFAULT_SLICE_SIZE = 16 |
| The default slide size. More... | |
Protected Member Functions | |
| virtual void | OnInitUser (Frame f) |
| override TaskHandle | Schedule (Frame f, TaskHandle taskHandle) |
| Override to add tasks to this system. | |
Additional Inherited Members | |
Properties inherited from Quantum.SystemBase | |
| IEnumerable< SystemBase > | ChildSystems [get] |
| The enumerable child systems. More... | |
| IEnumerable< SystemBase > | Hierarchy [get] |
| Creates the complete sub graph of child systems. More... | |
| SystemBase | ParentSystem [get] |
| The parent system in the system hierarchy. More... | |
| string | ProfilerName [get] |
| Profiler name. More... | |
| Int32 | RuntimeIndex [get] |
| A unique index assigned to identify systems at runtime. More... | |
| virtual Boolean | StartEnabled [get, set] |
Set to true when the simulation should start with this system enabled. More... | |
A multi-threaded system to parallelize updating components.
Threaded task: the threads will iterate over a component buffer with a size that is not known at Schedule time. Each thread will acquire a slice of a given (configurable) size until the end of the buffer is reached. While iterating over a slice, the thread will call the Update() method that can be implemented by the inheritor system, passing a FrameThreadSafe, the EntityRef and a T*.
Only access to the component itself and FrameThreadSafe is safe.
For more information request access to the online multi-threading documentation.
| T |
| T | : | unmanaged | |
| T | : | IComponent |
|
static |
The default slide size.