Dennis Kobert
181c30bc0a
Fix assorted Clippy lints ( #3390 )
2025-11-17 07:58:31 +00:00
Wade Cheng
94414adaf8
Add selection subtracting to the node graph view ( #3290 )
...
Add selection subtracting for node graph
2025-11-14 20:09:43 +00:00
Timon
3871b6c4cf
Fix graph UI culling on-screen nodes ( #3380 )
...
* fix
* review fixup
2025-11-13 21:25:27 -08:00
Keavon Chambers
ca5785bc8f
Show a "Ctrl +" label instead of "Ctrl =" for View > Zoom In ( #3377 )
2025-11-13 17:24:04 -08:00
Keavon Chambers
ac74bd9903
Allow the Stroke node to receive "Dash Lengths" values from the node graph
2025-11-12 01:14:17 -08:00
James Lindsay
4e65887b90
Fix the Artboard tool drawing the first artboard on an infinite canvas with layers present ( #3356 )
...
Improve creating the first artboard
2025-11-10 13:36:30 -08:00
James Lindsay
7f10a4258e
Fix copying nodes sometimes failing when no OutputConnector exists ( #3365 )
...
* Fix copy nodes sometimes failing when no OutputConnector exists
* Add test for copying a node
2025-11-10 20:26:25 +00:00
Timon and Dennis Kobert
881ec0b193
Split out viewport handling into its own message handler ( #3331 )
...
* extract viewport handeling
* fix web overlays
* some cleanup
* remove some physical conversions
* fix resize snapping
* fixup
* apply some review feedback
* make viewport api more ergonomic
* fix
* fix web overlay canvas clear size
* clear workaround for canvas
* rename trigger message
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2025-11-08 08:59:38 +00:00
Dennis Kobert
68e67055d8
Update Linebender-related dependencies ( #3349 )
...
* Updates crates from linebender ecosystem
* Remove usages of decprecated Clip mix mode
2025-11-08 08:59:00 +01:00
Keavon Chambers
0998abdaf3
Add support for visualizing Vec<String> in the Data panel
2025-11-03 13:13:54 -08:00
skearya
c4bbb7e880
Reduce editor message size by 67% and fix simple clippy warnings ( #3327 )
...
Reduce message size and fix some clippy issues
2025-11-02 08:50:29 +01:00
James Lindsay
1b9a492a74
Fix crash when creating cyclic nodes ( #3313 )
...
* Fix crash when creating cyclic nodes
* Re-add the recursive set_input call
2025-10-30 13:01:45 +01:00
Dennis Kobert
e8f18b0ac0
Cache calculation of bounding boxes with transforms ( #3287 )
...
* Cache calculation of bounding boxes with transforms
* Reuse bounding boxes across for the same rotation
* Cleanup code and add documentation
* Add tests
2025-10-17 10:20:55 +00:00
Timon
3509f0b035
Desktop: Persist document path ( #3272 )
...
* persist document path
* persist data cleanup
2025-10-15 10:30:47 +00:00
Sambhram and Timon
591096a817
Exit sub-network via Escape key ( #3285 )
...
"Escape key in sub-network"
Co-authored-by: Timon <me@timon.zip >
2025-10-15 00:08:04 +00:00
Trevor Paley
ca70fd8380
Add quick measurement between objects and artboards ( #3274 )
2025-10-12 18:14:02 +00:00
Dennis Kobert
bc66148d2b
Reset the overlay context for each draw request and use global font cache ( #3231 )
2025-09-28 15:36:08 +00:00
Dennis Kobert and Timon Schelling
ffc74273cc
Implement Convert trait to convert between CPU and GPU images ( #3194 )
...
* Add upload texture trait
* Make convert trait use explicit converter
* Add gpu texture download implementation
* Add footprint to convert trait
* Cleanup texture upload / download
* Download wgpu textures aligned
* abstract texture download into converter helper
* rename module
not only doing uploads anymore
conversion looks like a ok name
* Remove into_iter call and intermediate vector allocation
---------
Co-authored-by: Timon Schelling <me@timon.zip >
2025-09-26 14:30:01 +02:00
Dennis Kobert
4e47b5db93
Restructure gcore/text module and fix memory leak ( #3221 )
...
* Restructure gcore/text module and fix memory leak
* Remove unused import
* Fix default font fallback causing wrong caching and rename to TextContext
* Upgrade demo art
2025-09-25 15:29:07 +02:00
Keavon Chambers
7e3ab78ea4
Fix more flaws with 'Transform' node rad-to-deg migration; make 'Tangent on Path' also use degrees by default
2025-09-18 14:09:10 -07:00
Dennis Kobert
390ce023ea
Fix regression when rotating a group, resulting in an incorrect transform cage bounding box ( #3184 )
...
Revert "Reuse click target bounding boxes for document bounds"
This reverts commit d9e8a71cd0 .
2025-09-16 13:41:44 -07:00
Timon
2483832227
Mark new documents as saved ( #3165 )
...
* clean up new document message handling
* Mark new documents as saved
2025-09-11 12:09:15 -07:00
Dennis Kobert
5836416632
Optimize editor performance for node selection, click target bounds, and batched messages ( #3162 )
...
* Don't clone messages during batch processing
* Improve selected nodes perf and memoize network hash computation
* Reuse click target bounding boxes for document bounds
* Early terminate computing the connected count
* Cleanup
2025-09-11 10:08:26 +00:00
Dennis Kobert
ad5d8fcd37
Optimize rendering by caching intermediate render results when panning/zooming ( #3147 )
...
* Add svg render node
WIP
Fix error in context nullificaton node insertion
Correctly translate metadata
Fix warning
* Cleanup
* Remove color / gradient check and fix svg defs
* Implement viewport filling transform modification for vello
* Cleanup and comments
* Code review
2025-09-11 11:35:33 +02:00
Keavon Chambers
9a32e79853
Rename NodeInput::Network to NodeInput::Import ( #3163 )
2025-09-10 20:50:15 -07:00
Adam Gerhant and Keavon Chambers
332088bce1
Make the Transform node use angles in degrees instead of radians for Rotation and Skew ( #3160 )
...
* Make the Transform node use degrees not radians
* Migration script
* Migrate skew value input to store degrees
* Add comments
* Fix migrations to account for the old deprecated "Pivot" parameter
* Fix tooling interactions with degrees-based transforms
* Upgrade demo art
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-11 00:19:10 +00:00
Keavon Chambers
22aa8c1264
Update UI widget designs to improve color consistency and add a narrow height mode
2025-09-08 21:48:22 -07:00
0SlowPoke0 and Keavon Chambers
485152bf8d
Add "Spiral" to the Shape tool and as a new node ( #2803 )
...
* made spiral node
* number of turns in decimal and arc-angle implementation
* logarithmic spiral
* unified log and arc spiral into spiral node
* add spiral shape in shape tool
* fix min value and degree unit
* make it compile
* updated the api
* changed the function_name
* [/] to update the turns widget in shape tool
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-08 14:37:43 -07:00
Adam Gerhant and Keavon Chambers
7686edd47b
Add a cancel transaction message to the history system ( #3121 )
...
Add cancel transaction
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-07 14:00:42 -07:00
Keavon Chambers
a2c0693038
Fix most known issues with migrations failing to open documents from the past year ( #3148 )
2025-09-07 11:10:03 -07:00
Keavon Chambers
89c9cf1352
Fix infinite recursion introduced in #2795 that occurs in old document migrations
2025-09-05 14:04:10 -07:00
Dennis Kobert and Keavon Chambers
acd7ba38cc
Graphene: Fine-grained context caching ( #2500 )
...
* RFC: Fine Grained Context Caching
* Fix typos
* Fix label
* Add description of inject traits
* Explicitly support context modification
* Start implementation of context invalidation
* Add inject trait variants
* Route Extract / Inject traits to the proto nodes
* Implement context dependency analysis
* Implement context modification node insertion
* Fix erronous force graph run message
* Fix Extract* Inject* annotations in the nodes
* Require Hash implementation for VarArgs
* Fix nullification node insertion
* Cross of done items unresolved questions section
* Update Cargo.lock
* Fix context features propagation
* Update demo artwork
* Remove BondlessFootprint and FreezeRealTime nodes
* Fix migration
* Add migrations for adding context features to old networks
* Always update real time regardless of animation state
* Cargo fmt
* Fix tests
* Readd sed command to hopefully fix profile result parsing
* Add debug output to profiling pr
* Use new totals instead of summaries for for iai results
* Even more debugging
* Use correct debug metrics (hopefully)
* Add more MemoNode implementations
* Add context features annotation to shader node macro
* Cleanup
* Time -> RealTime
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-05 11:44:26 +00:00
Timon
083dfa5f49
Clean up autosave persistence ( #3115 )
...
* Set auto save state to false on document rename
* Update open document list on transaction commit and aboard
* Use current network to compute hash
Was using the last element in undo
Before artworks where not auto saved when the had no undo history
* Refactor persistence
2025-09-02 13:27:38 +00:00
Adam Gerhant and Keavon Chambers
f1a1275601
Add support for adding/removing a graph's primary imports/exports separately from the secondary ( #3089 )
...
* Primary Import/Export
* Primary Import/Export
* Complete import exports
* Final changes
* Improve line width
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-29 20:57:15 +00:00
Firestar99 and hypercube
95ef8a5343
Change Table<Color> node inputs to Color where only one value is used so GPU nodes work ( #3096 )
...
* graster-nodes: change `Table<Color>` params to `Color` where only one value is used
* Re-add support for Color and Option<Color>
* Add warning when a default value isn't parsed
---------
Co-authored-by: hypercube <0hypercube@gmail.com >
2025-08-28 15:16:56 +02:00
82784b46a0
Add node input type support for f32 to enable usage on GPU ( #3095 )
...
* update Cargo.lock
* f32: switch to f32 params
* f32: more f32 params, remove f32 casts
* f32: property support for f32
* f32: fix test `stable_node_id_generation`
* Fix f32 properties
* Fix f32 frontend data types
* Rename TaggedValue::Vec2 to ::FVec2 and ::Affine2 to ::FAffine2
---------
Co-authored-by: hypercube <0hypercube@gmail.com >
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-27 20:08:45 -07:00
Adesh Gupta and Keavon Chambers
34b52bcc54
Clean up Path tool related code and fix bugs in several cases ( #3070 )
...
* Fix regressions related to path tool
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-27 23:42:04 +00:00
Dennis Kobert
d9cbf975ff
Deprecate automatic composition ( #3088 )
...
* Make manual_compositon non optional and rename to call_argument
* Fix clippy warnings
* Remove automatic composition compiler infrastructure
* Implement document migration
* Fix tests
* Fix compilation on web
* Fix doble number test
* Remove extra parens
* Cleanup
* Update demo artwork
* Remove last compose node mention
* Remove last mention of manual composition
2025-08-24 08:34:59 +00:00
Dennis Kobert
354bf93364
Store document node inputs in Arc to reduce memory consumption ( #3086 )
...
Store values in memo hash contanier in arc
2025-08-23 17:24:41 +02:00
Dennis Kobert
469f0a6c30
Remove lambda node inputs since they are no longer used ( #3084 )
...
* Remove lambda node inputs as they are now unused
* Fix warnings
* Fix tests
* Fix clippy warning
2025-08-23 12:16:49 +02:00
Dennis Kobert
7377871106
Fix clippy warnings ( #3085 )
...
* Run clippy fix
* Clippy v2
* Make const item static
* Cargo fmt
2025-08-23 11:45:47 +02:00
Keavon Chambers
0e467907e2
Improve font import; replace Inconsolata with Source Code Pro; show third-party licenses in editor dialog ( #3079 )
...
* Improve font import; replace Inconsolata with Source Code Pro; show third-party licenses in editor dialog
* Code review
2025-08-21 11:57:04 -07:00
Timon and Dennis Kobert
e70862b399
Desktop: Add File > Save As… ( #3034 )
...
* Make file name and document name identical
* Add save as action
* Fix test errors
* Add missing save as action
* Desktop fix drop file open document file message
* Address review comments
* Replace file save suffix with file extension
* Add comment specifying that the upload function takes a html input accept string
* Fix remove file extension in web
* Use let
* Don't show save as menu entry in web
* Don't add SaveDocumentAs in web
* Remove file extension on all open document file calls
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2025-08-20 10:09:01 +00:00
Dennis Kobert and Keavon Chambers
7c30f6168b
Improve snapping performance ( #3067 )
...
* Use lyon_geom for intersection calculation of bezier segments
* Implement approximate nearest point calculation and loosen bounding boxes
* Add algorithm explanation
* Update editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs
Co-authored-by: Keavon Chambers <keavon@keavon.com >
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-20 10:47:58 +02:00
Mohd Mohsin and Keavon Chambers
17d70dc60e
Add struct field visualization to the editor message hierarchy tree visualization on the website ( #2917 )
...
* Fix Message Tree: Enforce Structure and Visibility
* Code review
* fix the erroreous ouputs
* error handling for MessageHandler
* Fix website visualization HTML generation
* error handling for tuple-style message enum variant
* cleanup
* Update messages
* Normalize BroadcastEvent
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-18 21:04:29 -07:00
Firestar99
0a53eae4e0
Remove unused cargo dependencies ( #3063 )
...
* cargo shear
* fix warnings on master
* fix docs needing dev-dependency
2025-08-18 11:26:44 -07:00
Meet Zalavadiya
4da732dcc3
Fix artboard labels not reappearing once the node graph is closed to return to the viewport ( #3061 )
...
Closes #3045
2025-08-18 05:49:21 +00:00
Priyanshu and Keavon Chambers
d22b2ca927
Refactor the Centroid node and Subpath struct and methods to use Kurbo, eliminating all remaining usages of Bezier-rs ( #3036 )
...
* define Subpath struct in gcore and refactor node-graph
* Refactor few methods
* refactoring worked!
* refactor centoid area and length
* remove unused
* cleanup
* fix pathseg_points function
* fix tranforming segments
* fix segment intersection
* refactor to_path_segments fn in gpath-bool crate
* refactor gcraft
* add bezier-rs dep
* Code review the editor directory
* use path-bool for solving roots
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-16 13:39:25 -07:00
Keavon Chambers
bdc029c692
Add Table<Gradient> as a graphical type ( #3051 )
2025-08-13 01:42:51 -07:00
Keavon Chambers
1b351aca76
Replace the Color type with Table<Color> everywhere ( #3048 )
2025-08-12 00:38:23 -07:00