Should add that I would never consider porting Urho3D to The-Forge. If someone were to try such a thing it’d make more sense to be a ‘Graphics2’ option that excluded legacy ‘Graphics’ and UI, becoming a project choice and doesn’t discard legacy targets or mess with anyone else too much.
Common functionality would get moved out into mostly purely calculative functions (OcclusionBuffer works anywhere, skinning matrix math doesn’t change, etc) and the new stuff be render-graph based with a much more raw API direct to The-Forge (you still have to handle transitions/barriers in The-Forge).
Using that clean split makes it more sensible to be hugging modern methods like indirect-draws, GPU cluster/triangle culling, splitting large batch-pumps into jobs for threaded cmd-lists, compute skinning, and opens up async rendering without creating a gigantic mess in Graphics.
Sounds like a lot of work, but it’s not that bad. Compute skinning greatly simplifies shader and rendering complexity by effectively reducing everything to “static-draws” after the prep-work has been done. UI is the headache, to interop-layer or to not and do something else is the question.
Maybe 140hrs to get to a “proof” stage without UI, assuming graphics was the only beef one had. (I dropped Urho for custom because of physics+audio+state more so than what I could do with graphics, SDL not handling windows spatial is a serious deal breaker).