git.lucas.co / cce-data-editor
structured data editor
git clone https://git.lucas.co/cce-data-editor.git

commit1b6658b03dc9b2ed1ae3d365032649877fc968a3
parent7ebe0392e5
authorLucas Galante <[email protected]>
date2026-07-07 20:34
feat: opt-in CCE_PAINT_WALK single-paint-path rendering

Implement Application::display_list() gated on CCE_PAINT_WALK, returning scene::painter::paint_tree(root_window), to A/B the Phase 3 single paint path. Off by default.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

 src/main.rs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/main.rs b/src/main.rs
index 60af536..59467bd 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1521,6 +1521,15 @@ impl Application for DataEditorApp {
         quads.extend(self.root_window.all_rounded_quads(&self.ui_context));
     }
 
+    fn display_list(&mut self) -> Option<cce_ui::scene::paint::DisplayList> {
+        // Opt-in A/B for the Phase 3 single paint path (CCE_PAINT_WALK). Off by default.
+        if std::env::var("CCE_PAINT_WALK").is_err() {
+            return None;
+        }
+        let root: *mut (dyn cce_ui::widget::Element + 'static) = self.root_window.as_ptr_mut();
+        Some(cce_ui::scene::painter::paint_tree(&self.ui_context, root))
+    }
+
     fn text_items(&self) -> &[TextItem] {
         &self.text_items
     }