GraphiteEditor / GraphiteEditor/Graphite

Reimplement the node graph UI in the backend

Ouverte
#1,922 1 commentaire 0 réactions 1 personne assignée Réclamée par @adamgerhant Voir sur GitHub
Performance Web
Langage dominant
Rust
Étoiles
27.3k
Forks
1.3k
Merge moyen
20 h 5 min
PR mergées (30 j)
57

Description

HTML/CSS isn't well suited for our node graph implementation. We need to reimplement all functionality of the UI by building it out of rounded rectangles, icons, strokes, etc. in the backend. Vello will then be able to render this much more efficiently than the HTML/CSS implementation, while also being able to apply certain effects like the frosted glass background that aren't possible in the current web-based UI due to CSS limitations. In addition to helping fix performance and improve styling, this will help remove a bunch of plumbing code and reuse a lot of code that already goes into rendering the artwork within the viewport, which will now simply have a node graph drawn similarly above it. Once this is done, we can begin putting more effort again into the node graph UI for extra features that aren't worthwhile in the soon-to-be-replaced web UI for the graph, which was always a hacky mess to begin with.

There are two possible approaches:
- Directly emitting a Vello scene
- Pro: probably faster
- Pro: possibly more controllable
- Con: requires WebGPU which is an issue until the end of 2024
- Unknown: might be easier *or* harder to implement frosted background blurring
- Emitting the GraphicGroup data describing how the node graph can be rendered (but without the node graph, just the graphical data)
- Pro: backwards-compatible for SVG-based rendering without Vello
- Con: may require additional maintenance burden as we update the graphical data format
- Unknown: might be easier **or* harder to implement frosted background blurring

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.