node-based graph editor
git clone https://git.lucas.co/cce-graph.git
feat: render via the single paint path by default (Phase 3)
display_list() now returns the scene::painter DisplayList unconditionally (GPU-scissor-clipped single pass), making cce-graph the first app on the Phase 3 paint path by default. CCE_LEGACY_PAINT falls back to the legacy renderer. Verified: static rendering + dropdown popovers/hover/selection.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
src/main.rs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/main.rs b/src/main.rs
index ce5521a..b9911eb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1328,10 +1328,10 @@ impl Application for GraphApp {
}
fn display_list(&mut self) -> Option<cce_ui::scene::paint::DisplayList> {
- // Opt-in A/B toggle for the Phase 3 single paint path: with CCE_PAINT_WALK set, render the
- // widget tree via scene::painter (one traversal -> one clipped DisplayList, drawn with GPU
- // scissor) instead of the legacy all_rounded_quads geometry. Default off => legacy path.
- if std::env::var("CCE_PAINT_WALK").is_err() {
+ // Phase 3: render the widget tree via the single paint path by default (scene::painter ->
+ // one clipped DisplayList, drawn with GPU scissor). Set CCE_LEGACY_PAINT to fall back to
+ // the legacy multi-path renderer.
+ if std::env::var("CCE_LEGACY_PAINT").is_ok() {
return None;
}
let root: *mut (dyn cce_ui::widget::Element + 'static) = self.root_window.as_ptr_mut();