Display list: coding pattern

Good morning. Throughout development of the Agera SDK I've thought of two possible patterns for use with a display list, also known as a node hierarchy:

bevy_ecs

bevy_ecs has two issues for me:

  • Its major version is not at least 1 in the present.
  • Management of children entities is not efficient so I can inherit parent values such as alpha, relative coordinates, and rotation, and such that I can render a child and apply bitmap filters to it such as color transform and blur.

oop_inheritance

oop_inheritance has received bad feedback here in that it is not object-oriented inheritance for Rust since it does not support virtual methods.

Additionally, the crate requires the user to manually specify all ascending classes when defining a class.

Therefore, I want to discard oop_inheritance from Agera SDK, but have no certainty of what to replace it with. What would you recommend me to do?

Is it possible to support virtual methods with procedural macros?