Graphite/node-graph/libraries
Keavon Chambers cb21e5960b
Remove serialization from Table<T> and make TaggedValue only store tooling/widget node inputs (#4129)
* Add TaggedValue::TypeDefault to avoid baking placeholder Tables into saved documents

* Add TaggedValue::TypeDefault to avoid baking placeholder Tables into saved documents

* Migrate empty Vector/Raster/Graphic/Artboard placeholder values to TypeDefault on load

Documents written before the TypeDefault mechanism existed have empty Table<Vector>/<Raster>/<Graphic>/<Artboard> values baked into every unwired exposed input. Walk each migrated node's inputs and rewrite any such placeholder NodeInput::Value into the equivalent NodeInput::type_default, so re-saved documents shed the placeholder payloads. Marked with a TODO for eventual removal once enough documents have been re-saved.

* Re-save demo artwork

* Remove Graphic and Artboard placeholder containers from TaggedValue

* Remove Raster placeholder TaggedValue variant

* Simplify document migration

* Remove Vector placeholder TaggedValue variant

* Remove NodeIdTable from the TaggedValue

* Remove StringTable from the TaggedValue

* Remove F64Table in place of F64Array in TaggedValue

* Replace TaggedValue::Color(Table<Color>) with ::Color(Option<Color>)

* Replace TaggedValue::GradientTable(Table<GradientStops>) with ::Gradient(GradientStops)

* Replace TaggedValue::BrushStrokeTable(Table<BrushStroke>) with ::BrushStrokes(Vec<BrushStroke>)

* Make TaggedValue::DocumentNode runtime-only with TypeDefault placeholder

* Make TaggedValue::ContextFeatures runtime-only

* Remove Serialize/Deserialize from Table<T>

* Add a widget for TaggedValue::BrushStrokes to visualize strokes and samples

* Define a reusable list of TaggedValue::TypeDefault types for its generated methods

* Re-save demo artwork
2026-05-08 16:11:25 -07:00
..
application-io Implement dynamic table attributes to generalize the graphic-specific Table type (#4050) 2026-04-28 03:25:16 -07:00
canvas-utils Replace deprecated row/cell/instance terminology with "item" and "value" terms (#4075) 2026-04-28 19:12:59 -07:00
core-types Remove serialization from Table<T> and make TaggedValue only store tooling/widget node inputs (#4129) 2026-05-08 16:11:25 -07:00
graphene-hash Migrate usage of the Hash trait for cache invalidation to the dedicated CacheHash trait (#4051) 2026-04-27 05:18:47 +00:00
graphic-types Remove serialization from Table<T> and make TaggedValue only store tooling/widget node inputs (#4129) 2026-05-08 16:11:25 -07:00
no-std-types Port the color picker popover to a Rust-defined layout (#4102) 2026-05-05 02:47:53 -07:00
raster-types Remove serialization from Table<T> and make TaggedValue only store tooling/widget node inputs (#4129) 2026-05-08 16:11:25 -07:00
rendering Fix rendering semi-opaque paths with "Outside" stroke alignment (#4110) 2026-05-06 01:26:43 -07:00
vector-types Remove serialization from Table<T> and make TaggedValue only store tooling/widget node inputs (#4129) 2026-05-08 16:11:25 -07:00
wgpu-executor Reimplement checkered background rendering (#4034) 2026-05-01 17:02:10 +00:00