Add a RenderLayer system for global render ordering
Los mantenedores suelen responder en 1 día
@spydon ya está trabajando en esto.
Desde el 22/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Motivation
priority only orders siblings, so the draw order of a component is tied to where it sits in the tree. Games regularly need cross-hierarchy ordering (a health bar above all enemies, a projectile under all UI) and the current workaround is restructuring the tree so competitors share a parent.
Proposal
A RenderLayer system, similar in spirit to Godot's CanvasLayer and Unity's sorting layers:
- A
World(per camera pass) owns an ordered set of layers; each layer has a z-index. - Components can declare a target layer; their rendering is routed to that layer instead of their tree position, while updating, lifecycle, and hit-testing stay hierarchical.
- Plain
PositionComponents are replayed onto their layer using their cached absolute transform. Subtrees with hierarchical render state (clips, decorators, snapshots, customrenderTree) stay atomic: they render as a unit at their subtree's layer. - The flattened-traversal infrastructure from #3957 (structure versioning, lazily rebuilt root-owned lists) carries over directly for maintaining per-layer render lists.
This also follows the design note in #3957 about separating render order from update order, and would give y-sort a render-time home (a layer sorted by position.y) with zero structural reordering.
Out of scope
Arbitrary interleaving of components across clip/decorator boundaries; those subtrees remain atomic within a layer.
Related: #3957, and the "Support a global z-index/priority" item in #1938.
- Lenguaje dominante
- Dart
- Estrellas
- 10.8k
- Forks
- 1.1k
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 50
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de flame-engine/flame
-
flame_tiled: tileset image in a subfolder of an external .tsx resolves to the wrong pathPosiblemente ocupada @ufrshubham la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
flame-engine/flame#4117 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
enhancement v2
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
flame-engine/flame#4116 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
flame-engine/flame#4063 ·
Los mantenedores suelen responder en 1 día
-
TextComponent shadows are not affected by OpacityEffectPosiblemente ocupada @spydon la tomó hace 39 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
flame-engine/flame#4013 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
flame-engine/flame#4012 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de flame-engine/flame
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jhomlala/betterplayer#1609 ·
Los mantenedores suelen responder en 1 día
-
[FR] 缓存键放置在外面Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
bggRGjQaUbCoE/PiliPlus#3310 ·
Los mantenedores suelen responder en 1 día
-
package:code_builder type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
type:feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
[material_ui] CalendarDatePicker day numbers are cut off with large text scale on narrow screensAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día