-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ECS Refactor. #86
ECS Refactor. #86
Commits on Mar 8, 2024
-
Foundational block of ECS: type-erased
Vec
.See discussion at https://discord.com/channels/273534239310479360/1215712247654125588
Configuration menu - View commit details
-
Copy full SHA for a515e22 - Browse repository at this point
Copy the full SHA a515e22View commit details
Commits on Mar 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5bef663 - Browse repository at this point
Copy the full SHA 5bef663View commit details
Commits on Mar 10, 2024
-
World
for hosting all nodes of different comps of a puppet.Safe interfaces of `AnyVec` removed, as tested and usage constrained.
Configuration menu - View commit details
-
Copy full SHA for d52f4ff - Browse repository at this point
Copy the full SHA d52f4ffView commit details
Commits on Mar 13, 2024
-
Inochi2D node types into Inox2D components, see comments in `node/components.rs`. `Puppet` as self-managed struct, reads INP file into a tree of nodes and a world of components to construct self. No `Copy/Clone` on `InoxNode`, components and `JsonValue`, cutting Aka.inp loading time to 1/3.
Configuration menu - View commit details
-
Copy full SHA for 492c894 - Browse repository at this point
Copy the full SHA 492c894View commit details
Commits on Jul 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ea6d2f7 - Browse repository at this point
Copy the full SHA ea6d2f7View commit details -
RenderCtx with components in mind. Init and reading methods.
Storing absolute transforms is no longer RenderCtx's job. Put graphics buffer stuff to a seperate file.
Configuration menu - View commit details
-
Copy full SHA for 032181f - Browse repository at this point
Copy the full SHA 032181fView commit details -
Componentize render contexts and store them in puppets.
Should be easy for incorporating future renderable node types.
Configuration menu - View commit details
-
Copy full SHA for 2746a6c - Browse repository at this point
Copy the full SHA 2746a6cView commit details -
Get required data from components instead. Changes to the renderer traits: - remove `render()` - `on_begin_mask()` -> `on_begin_masks()` - `set_mask_mode()` -> `on_begin_mask()` - `draw_mesh_self()` -> `draw_textured_mesh_content()` - `draw_part()` -> `draw_drawable()`
Configuration menu - View commit details
-
Copy full SHA for 9bd7c4d - Browse repository at this point
Copy the full SHA 9bd7c4dView commit details
Commits on Jul 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 08cccb6 - Browse repository at this point
Copy the full SHA 08cccb6View commit details -
Pass
InoxNodeUuid
of the node in question to draw calls in case som……e backend gets smart. For example reusing some results for a same node.
Configuration menu - View commit details
-
Copy full SHA for 3cc6f64 - Browse repository at this point
Copy the full SHA 3cc6f64View commit details
Commits on Jul 20, 2024
-
Enum `Deform` and `DeformSrc` to get prepared for Meshgroup implementation. One `DeformStack` per deform-able node for combining multiple deforms in a controlled way. Drawable related stuff, especially the drawable kind determination logic, moved to its own places from `render.rs`, as apparently other systems (parameters for example) may want to know is a node a drawable.
Configuration menu - View commit details
-
Copy full SHA for 1cfa783 - Browse repository at this point
Copy the full SHA 1cfa783View commit details
Commits on Jul 21, 2024
-
Components to store zsorts and transforms that are being modified acr…
…oss frames. so that `InoxNode` stores constant initial values.
Configuration menu - View commit details
-
Copy full SHA for 3ffdb23 - Browse repository at this point
Copy the full SHA 3ffdb23View commit details -
Configuration menu - View commit details
-
Copy full SHA for 537b75a - Browse repository at this point
Copy the full SHA 537b75aView commit details
Commits on Jul 26, 2024
-
The same reasoning behind `ctx` structs: Any data not in a model file is additional context data for certain functionalities, which should be only initialized upon demand. End users only reset and set the values of params. When and how to actually apply params per frame is up to this library. Removed `physics_ctx` placeholder that is present on local but should not be published.
Configuration menu - View commit details
-
Copy full SHA for 49111a7 - Browse repository at this point
Copy the full SHA 49111a7View commit details
Commits on Jul 28, 2024
-
Implement reset methods for puppet to run across frames.
General pattern for a "system": Takes the form of an optional `-Ctx` struct attached to a puppet, which can be initialized if dependencies met. Interactions with the puppet data are done in methods of the struct, so a `None` system can do nothing. Current systems: Transform, Param, Render.
Configuration menu - View commit details
-
Copy full SHA for e08b1ca - Browse repository at this point
Copy the full SHA e08b1caView commit details
Commits on Jul 29, 2024
-
With parameters and ECS system in place. Changes to `trait InoxRenderer` during implementation: - `new()` can have custom params. - `on_begin_draw()` and `on_end_draw()` Make `vao` creation, binding and unbinding, and vbo attaching, more explicit. Move previous OpenGL `InoxRenderer` implementation into new framework. Remove duplicate shader bind and uniform uploads during iteration over masks for a node (do once inside `on_begin_masks()`).
Configuration menu - View commit details
-
Copy full SHA for 54e1098 - Browse repository at this point
Copy the full SHA 54e1098View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30ecda4 - Browse repository at this point
Copy the full SHA 30ecda4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6050b79 - Browse repository at this point
Copy the full SHA 6050b79View commit details -
Configuration menu - View commit details
-
Copy full SHA for fc3ab0d - Browse repository at this point
Copy the full SHA fc3ab0dView commit details
Commits on Jul 30, 2024
-
Fix zsort, thus rendering is back for
Aka.inp
.Properly implement zsort inheritance (+). Correctly exclude composite children from `root_drawables_zsorted`. Turn off param application temporarily, so this commit works for `Aka.inp`.
Configuration menu - View commit details
-
Copy full SHA for 00725d6 - Browse repository at this point
Copy the full SHA 00725d6View commit details -
Params (and deforms) back online: Dirty zero check patching for an ol…
…d bug. Currently, overflow will happen if value (0, 0) is applied on a param, which is clearly a bug. The actual fix is not in the scope of ECS refactor.
Configuration menu - View commit details
-
Copy full SHA for c1ade82 - Browse repository at this point
Copy the full SHA c1ade82View commit details
Commits on Jul 31, 2024
-
The philosophy of the ECS refactor naturally leads to this cleanup: In this refactor, spec-defined variables either goes into `InoxNode` or a component. If there are additional variables needed for the execution of a certain module, they are attached as additional components later. It is revealed that bob position of a pendulum is such a variable. After cleanup, all pendulum-like systems can provide methods for accessing and updating their bobs' position, implementing `trait Pendulum`. And then `trait SimplePhysicsCtx` will be auto implemented for all `impl Pendulum`, handling the mapping from transforms to simulation input, from simulation input to parameter values. More comments are added.
Configuration menu - View commit details
-
Copy full SHA for 5e03996 - Browse repository at this point
Copy the full SHA 5e03996View commit details -
The implementation is inefficient (check changes in `puppet.rs`), yes, but clear, and the bottleneck is not here anyways. Cloning of `SimplePhysics` is required for working around ownership problems, until dark magic implemented on `World` enabling multiple mutable handles to different components.
Configuration menu - View commit details
-
Copy full SHA for d3c3d02 - Browse repository at this point
Copy the full SHA d3c3d02View commit details
Commits on Aug 3, 2024
-
And suppress variant unused warning... until Meshgroups.
Configuration menu - View commit details
-
Copy full SHA for 51a2c4a - Browse repository at this point
Copy the full SHA 51a2c4aView commit details -
Put all components into
compoents.rs
.Responding to Inochi2D#86 (comment) Rename `ParamMapMode` to `PhysicsParamMapMode` for this change for clarity.
Configuration menu - View commit details
-
Copy full SHA for fa1ab36 - Browse repository at this point
Copy the full SHA fa1ab36View commit details
Commits on Aug 4, 2024
-
More direct
VertexBuffers
access.In response to Inochi2D#86 (comment)
Configuration menu - View commit details
-
Copy full SHA for 912782d - Browse repository at this point
Copy the full SHA 912782dView commit details -
Better safety specifications related to GL buffer operations.
In response to Inochi2D#86 (comment) Plus more robust `upload_array_to_gl()`, with more annotations inside.
Configuration menu - View commit details
-
Copy full SHA for 76b03d2 - Browse repository at this point
Copy the full SHA 76b03d2View commit details -
Remove
new()
fromtrait InoxRenderer
.In response to Inochi2D#86 (comment) ...and why `Sized` is required in the first place?
Configuration menu - View commit details
-
Copy full SHA for e6e399c - Browse repository at this point
Copy the full SHA e6e399cView commit details -
Better
on_begin_draw()
on_end_draw()
draw()
interfaces.In response to Inochi2D#86 (comment) The core crate does not need to know about the presence of stuff to do before and after `draw()`. This is up to renderer implementations.
Configuration menu - View commit details
-
Copy full SHA for 599090a - Browse repository at this point
Copy the full SHA 599090aView commit details -
tracing::warn!()
instead ofpanic!()
on non-standard component co……mbinations for a Drawable. In response to Inochi2D#86 (comment)
Configuration menu - View commit details
-
Copy full SHA for aff042e - Browse repository at this point
Copy the full SHA aff042eView commit details -
Do not give
TexturedMesh
that is not going to be deformed by any so……urce a `DeformStack`. Thus accordingly, fewer `DeformStack` resetting and reading will happen. Optimization inspired by Inochi2D#86 (comment)
Configuration menu - View commit details
-
Copy full SHA for 69549f9 - Browse repository at this point
Copy the full SHA 69549f9View commit details
Commits on Aug 8, 2024
-
Generalize
Mesh
into a standalone component.For future meshgroup implementation.
Configuration menu - View commit details
-
Copy full SHA for 7f4c9c0 - Browse repository at this point
Copy the full SHA 7f4c9c0View commit details
Commits on Aug 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 45f6a36 - Browse repository at this point
Copy the full SHA 45f6a36View commit details
Commits on Sep 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fc39a26 - Browse repository at this point
Copy the full SHA fc39a26View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21136c2 - Browse repository at this point
Copy the full SHA 21136c2View commit details