YohYamasaki
1adeb4cedd
WIP: Use List<Graphic> to render Color & Gradient
2026-05-20 11:17:28 +09:00
YohYamasaki
746d78364c
Add color converter and debug node to use graphic
2026-05-19 16:35:18 +09:00
YohYamasaki
3fd61169ae
Move opaque check function to Graphic impl
2026-05-19 16:34:23 +09:00
YohYamasaki
3091a6f2df
Fix empty fill list rendering as default black
...
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-05-19 04:25:36 +02:00
YohYamasaki
1802829c87
Fix comment
2026-05-19 10:57:12 +09:00
YohYamasaki
189557e150
Move svg pattern rendering function to RenderExt
2026-05-19 10:56:06 +09:00
YohYamasaki
ac3f31794d
Use <pattern> instead of <clipPath> for clip
...
This simplifies the future implementation of clipping-based rendering
for strokes, as the stroke does not support the use of a clip path but
rather paint sources from a paint server.
2026-05-19 09:50:59 +09:00
YohYamasaki
a03afedab3
format code
2026-05-18 09:03:49 +09:00
YohYamasaki
42991b41ca
Cleanup for Cow usage
2026-05-18 09:03:49 +09:00
YohYamasaki
28592352f2
Use Cow to avoid cloning graphic list for fill
2026-05-18 09:03:49 +09:00
YohYamasaki
7ee4117c37
Add basic clipping-based fill for SVG rendering
2026-05-18 09:03:49 +09:00
YohYamasaki
bad70f7be9
Fix conflicts
2026-05-18 09:03:49 +09:00
YohYamasaki
8a2aec61e7
Refactor Vector SVG renderer for Gradient / Color
2026-05-18 09:03:49 +09:00
YohYamasaki
25358d3832
Refactor Vector vello renderer for Gradient / Color
...
# Conflicts:
# node-graph/libraries/rendering/src/renderer.rs
2026-05-18 09:03:49 +09:00
YohYamasaki
e192269481
Add conversion from Fill to Table<Graphic>
2026-05-18 09:03:49 +09:00
Keavon Chambers
21d2994059
Fix 'Solidify Strokes' node to produce dashed segments in an ordered sequence per open subpath ( #3820 )
...
Fix the ordering of dashed segments of open paths with the 'Solidify Stroke' node
2026-05-17 10:56:40 -07:00
Timon
d5f0140f26
Upgrade WGPU and Linebender dependencies ( #4154 )
2026-05-17 15:36:59 +00:00
Keavon Chambers
c4a978009a
Fix SVG import treating gamma-encoded colors as linear-light
2026-05-16 05:37:01 -07:00
Keavon Chambers
256dd26b99
Recognize ExtractPosition/InjectPosition in the node macro context analyzer
...
Also, fix migration missing alias
2026-05-16 01:40:49 -07:00
Keavon Chambers
06e2a049de
Implement dragging layers into the group/new/delete buttons in the Layers panel ( #4153 )
2026-05-15 15:39:01 -07:00
Keavon Chambers
79df7cfa87
Implement dragging the visibility/lock icons in the Layers panel to toggle each ( #4152 )
...
* Implement dragging the visibility/lock icons in the Layers panel to toggle each
* Code review fixes
2026-05-15 15:16:40 -07:00
Keavon Chambers
16c7544d96
Add the Layer > Expand Fill/Stroke menu action ( #4151 )
...
* Add the Layer > Expand Fill/Stroke menu action
* Code review feedback
2026-05-15 13:10:50 -07:00
Keavon Chambers
a56746c6bf
Deprecate all usages of the Color struct representing gamma space values, fixing round-trip precision bugs ( #4149 )
...
* Deprecate all usages of the Color struct representing gamma space values, fixing round-trip precision bugs
* Code review fixes
2026-05-14 22:48:33 -07:00
gamma0987
456a7c868d
Migrate iai-callgrind to the renamed successor gungraun ( #4056 )
...
* Add .nvim.lua to gitignore
* Migrate from iai-callgrind to the renamed successor gungraun
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2026-05-14 08:18:59 +00:00
Keavon Chambers
1c9c19a697
Simplify and standardize how data types are presented in user-facing strings ( #4147 )
...
* User-facing type formatting
* Parse unicode not ASCII chars
2026-05-14 00:56:43 -07:00
Keavon Chambers
696b625a3e
Fix hover transfer bugs occurring with the color picker popover ( #4146 )
...
* Fix hover transfer bugs occurring with the color picker popover
* Code review fix
2026-05-13 20:19:56 -07:00
Keavon Chambers
4d5dce976e
Replace the control bar's stroke weight with a full stroke properties popover ( #4145 )
...
* Replace the control bar's stroke weight with a full stroke properties popover
* Code review
2026-05-13 03:58:12 -07:00
Keavon Chambers
629a1f4b4c
Redesign how the control bar handles fill and stroke colors ( #4137 )
...
* Revamp how the control bar handles fill and stroke colors
* Fix bugs
* Code review
2026-05-11 18:13:02 -07:00
Keavon Chambers
f6def3b911
Add icons for stroke align, cap, join, and order ( #4136 )
2026-05-11 03:53:38 -07:00
Timon
98daa75c26
Desktop: Add support for opening files through the already-running instance via a local socket ( #4123 )
...
* Desktop: Forward file-open args from a second launch to the running instance
Also adds socket infrastructure that can be used in the future to allow dispatching actions from another process
* Use socket instead of ipc terminologie
* Fix
* Fix
* Better pipe name on windows
2026-05-09 18:11:44 +00:00
Keavon Chambers
a28b9437aa
Rename the "Table" type to "List" everywhere ( #4133 )
...
* Rename the "Table" type to "List" everywhere
* Fix a few missed ones
* Re-save demo artwork
2026-05-09 01:33:39 -07:00
Keavon Chambers
6b3e4757de
Rename the Table type's "rows" -> "items" and "columns" -> "attributes" everywhere ( #4130 )
...
* Rename TableRow -> Item
* Rename row -> item and column -> attribute throughout
* Fix a few missed ones
* Format
2026-05-08 23:11:33 -07:00
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
Timon
d97fe835b5
Desktop: Focus app window when loading a document ( #4124 )
2026-05-08 15:00:20 +00:00
Keavon Chambers
9d876ab27d
Add support for opening multiple selected files from disk ( #4128 )
2026-05-07 21:21:45 -07:00
Keavon Chambers
dff8ac5511
Remove code for the deprecated and unused Curve type ( #4127 )
...
* Remove the unused Curve type
* Fix frontend
2026-05-07 16:16:19 -07:00
Keavon Chambers
0834bff2da
Make the Brush node store its cache as internal #[data] state instead of a serialized node input ( #4126 )
...
* Make the Brush node store its cache as internal #[data] state instead of a serialized node input
* Remove BrushCacheImpl::unique_id
2026-05-07 15:34:21 -07:00
Keavon Chambers
525e49f7e9
Make the Shape tool's modes' parameter controls sync with the selected shape layer ( #4121 )
...
* Make the Shape tool's modes' parameter controls sync with the selected shape layer
* Fix populating the Shape tool mode selection list
2026-05-07 02:42:39 -07:00
Keavon Chambers
1596469e92
Make the drawing tools' Weight control sync with the selected layer ( #4120 )
2026-05-07 02:12:38 -07:00
Keavon Chambers
9512f7df41
Make the Gradient tool default to the primary/secondary working colors as its initial gradient ( #4119 )
...
* Make the Gradient tool default to the primary/secondary working colors as its initial gradient
* Fix drawing direction
2026-05-07 01:41:01 -07:00
Keavon Chambers
24c857ddc7
Make the Text tool control bar font family, style, and size sync with the selected layer ( #4118 )
...
* Fix contenteditable preview alignment
* Make the Text tool control bar font family, style, and size sync with the selected layer
* Tidying up
2026-05-06 20:50:41 -07:00
Keavon Chambers
2ae35a67e7
Add icons for text alignment/justification
2026-05-06 19:26:26 -07:00
Jatin Bharti
c0a8241f50
Add text last-line alignment modes for "Justify Center", "Justify Right", and "Justify All" ( #4024 )
...
* feat: Add justify proper alignments(right/left/centre/all)
* chore: fmt
* chore: refactor
* Cleanup
* Fix crash when changing selected layer's alignment from the Text tool control bar
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-05-06 19:16:19 -07:00
Timon
1c2ac19b16
Desktop: Register the Graphite app as a file handler on Mac ( #4106 )
...
* Desktop: Implement native file open handler
* Desktop: Register file types on Mac
* Review
2026-05-06 13:05:30 +00:00
Timon
8ae8c47fe1
Fix the Fix > Close All action not resulting in the welcome screen being shown ( #4107 )
...
Fix missing welcome panel after closing all documents
Closing all documents left the Welcome panel as the only tab, but the old active document index could still point to a tab that no longer existed. The fix is to reset it to 0 when the document list becomes empty.
2026-05-06 12:03:14 +00:00
Keavon Chambers
023cf1bedd
Fix the 'Flatten Vector' node losing child layer transforms for the editor tools ( #4116 )
2026-05-06 04:35:23 -07:00
Keavon Chambers
d106bedecd
Fix Pen tool regression that broke dragging a sharp tangent out of the last-placed anchor ( #4115 )
2026-05-06 03:16:24 -07:00
Keavon Chambers
ecf94258fa
Fix tool overlays and snap targets to use upstream Path node geometry, not downstream final geometry ( #4114 )
...
* Fix tool overlays and snap targets to use upstream Path node geometry not downstream final geometry
* Snap to upstream Path free points, dedupe the lookup via a helper
2026-05-06 03:00:38 -07:00
Keavon Chambers
22a6e0d767
Preserve editor:layer_path through Table<Vector>::into_graphic_table() ( #4113 )
2026-05-06 02:21:45 -07:00
Keavon Chambers
9565d43481
Include stroke thickness in the bounds of document exports sized to fit "All Artwork" or "Selection" ( #4112 )
...
* Include stroke thickness in the bounds of document exports sized to fit "All Artwork" or "Selection"
* Code review fixes
2026-05-06 02:05:19 -07:00