Extending the render queues docs

This commit is contained in:
BirDt_ 2026-04-02 11:50:53 +08:00
parent d3a4f4c91f
commit 12754b61a3

View file

@ -43,11 +43,14 @@ The symbol an event is associated by is essentially an "action". The event bus c
Custom event buses can be created and stored in the ~event-buses~ hash table. Systems can query a particular event bus within that list for a particular event.
** Rendering
Imgui maintains 3 render queues, with one each for screen, 2D and 3D drawing.
Imugi maintains 3 render queues, with one each for screen, 2D and 3D drawing.
New queues can be added by adding a new list to the ~render-queues~ hash table.
Systems can push render objects to any of these queues, which are simply pairs of integers and a lambda thunk.
The initial integer denotes a layer, while the lambda thunk contains the drawing function to evaluate.
When drawing the next frame, the system iterates and executes every drawing thunk in order from the smallest to the largest layer.
The 3D queue is executed first, followed by the 2D queue, followed by the screen queue.
The order of execution can be changed by modifying the ~render-priority~ list.
The render-priority list contains pairs where the first symbol in the pair is a reference to the render queue in the ~render-queues~ hash table, and the second symbol is either ~screen~, ~2d~, or ~3d~. The order of items in this list informs Imugi of the order in which to execute the queues, and the second symbol of each pair tells Imugi what draw mode to use for each thunk.
For 2D and 3D drawing, systems can set the currently active camera object on the parameters ~*active-camera-2d*~ and ~*active-camera-3d*~.
** Resources