-
Notifications
You must be signed in to change notification settings - Fork 32
Closed
Milestone
Description
Some strategies from bevy (https://bevy.org/learn/quick-start/getting-started/setup/#enable-fast-compiles-optional):
- Use dynamic linking for ranim crate, like what bevy does
Now this is achived by addingcrate-type = ["rlib", "dylib"]for ranim package's lib, then useRUSTFLAGS="-C prefer-dynamic"(this requires no ranim_internal crate, however it affects all crates) - Use faster linker like lld and mold
- Use nightly toolchain
- Use cranelift for codegen (but still unstable)
And at the same time, we can re-arrange our packages.
In user's code, we only rely on Scene's API, Items and Animations:
Scene's API can be a simple trait.- Items are simple data structures that implements
Extractto Basic Item (likeVItemPrimitive). - Animations are also simple data structures that implements
EvalDynamic.
So, the packages can be re-arrange into:
ranim-core: providesScene,Extracttraits and Basic Items.ranim-render: provides implementation of render for Basic Items.ranim-cliorranim-appor ...: use all above to provide render api, preview app, etc.ranim-items: ranim builtin items built on top of Basic Itemsranim-anims: ranim builtin anims- ...
And in user's code, we actually just need ranim-core.
But it will requires redesign and rewrite of the internal of timeline.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels