Commit graph

1240 commits

Author SHA1 Message Date
firestar99
7f6a7d0995 HACK shaders: switch to f32 params 2025-08-25 11:49:27 +02:00
Dennis Kobert
d9cbf975ff
Deprecate automatic composition (#3088)
Some checks failed
Website / build (push) Has been cancelled
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* 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)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* 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
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
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
Priyanshu
615c035683
Fix a Path tool regression where selection depends on box winding direction (#3062)
fix path tool selection

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-19 04:36:18 +00:00
Mohd Mohsin
17d70dc60e
Add struct field visualization to the editor message hierarchy tree visualization on the website (#2917)
Some checks failed
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Website / build (push) Has been cancelled
* 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
Vineet Puranik
0a4a822837
Fix Alt-based quick measurement to show document space coordinates instead of viewport space (#2995)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-18 06:33:09 +00: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
Adesh Gupta
52174fa4c2
Remap Path tool point sliding to G G (#2913)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Feat: Point sliding on G G

* Code cleanup

* Fix gg sliding behaviour

* Fix build after merge conflict resolution

* Fix slide point and add hints

* Fix history in segment insertion

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-17 03:39:38 +00:00
Priyanshu
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
Adesh Gupta
99984fc2d6
Fix regression in shallow select (#3050)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* Add defer message for shallow select

* Fixed infinite loop
2025-08-15 12:55:05 +02:00
Keavon Chambers
bdc029c692
Add Table<Gradient> as a graphical type (#3051)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-13 01:42:51 -07:00
Keavon Chambers
1b351aca76
Replace the Color type with Table<Color> everywhere (#3048)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-12 00:38:23 -07:00
Dennis Kobert
437fc70500
Desktop: Fix Node Graph Overlay (#3042)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Replace usize::MAX with u32::MAX as a marker value which can be used on both native and wasm
2025-08-11 13:23:12 +00:00
Timon
fa2167dd7f
Desktop: Drag and drop file to open/import functionality (#3035)
* Desktop app add drop file functionality

* Add x11 libs to flake

* Restructure extension matching to remove nesting

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-08-11 11:48:10 +00:00
Keavon Chambers
2bb4509647
Replace the Spreadsheet panel with an improved Data panel (#3037)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* Improve the table data panel

* Add the "Window" menu bar section and polish everything
2025-08-10 07:46:42 -07:00
Keavon Chambers
2f4aef34e5
Add Table<Color> as a graphical type (#3033)
* Reduce code duplication in bounding box impls on Table

* Working Table<Color> rendering in the graph

* Implement color and fix other rendering with Vello and polish
2025-08-10 01:34:33 -07:00
Dennis Kobert
1164359c59
Actively submit graph evaluations while we are still waiting for results (#3024)
* Actively submit graph evaluations while we are still waiting for results

* Cleanup
2025-08-07 17:28:56 +02:00
Dennis Kobert
e003389526
Desktop: Implement missing vello overlays (#3004)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Implement fill overlay

* Implement text rendering for overlays

* Adjust y positioning
2025-08-06 19:39:35 +00:00
Dennis Kobert
ef2fab32a2
Track which document the deferred executions belong to (#3010)
* Track which document the deferred executions belong to

* Cleanup

* Fix tests

* Fix freehand tool

* Notify defer handler of graph execution updates asap
2025-08-06 21:16:02 +02:00
Timon
96a1b12a05
Desktop: Unify save file handling and add file dialog for export (#3008)
* Prepare save file unification

* Desktop add save file dialog
2025-08-06 16:07:53 +00:00
Priyanshu
b1f2cf706e
Refactor the node graph UI wires to render using Kurbo (#2994)
* impl function to check bezpath insideness

* refactor network interface wires to use kurbo

* refactor

* refactor

* fix adding MoveTo instead of LineTo to the grid aligned wire bezpath

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-06 02:17:00 -07:00
Keavon Chambers
0f638314dc
Rename the Group type to Graphic everywhere (#3009)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-05 20:55:15 -07:00
James Lindsay
23eb5998db
Fix pen tool (#3002)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-05 11:41:59 +00:00
Keavon Chambers
2e1396462c
Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables (#2996)
* Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables

* Make the Extend node user-facing
2025-08-05 02:24:12 -07:00
Keavon Chambers
4b11dced48 Make Table<T> implement the IntoIterator trait 2025-08-04 15:20:48 -07:00
Timon
7cb42b9523
Desktop: Add native file dialogs (#2939)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add native open file dialog

* Add native save file dialog

* Fix integer underflow in defer message handler

* Update nix flake

* Cleanup

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-08-04 13:58:33 +00:00
Keavon Chambers
c98477d8ed
Rename graphic subtypes to remove their "data" and "group" suffixes (#2990)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Rename VectorData to Vector

* Rename other VectorData* types to Vector*

* Move assorted data types out of vector_data.rs into misc.rs

* Rename vector_data.rs to vector_types.rs and remove the vector_types module folder

* Rename other references to "vector data"

* Remove label widgets for raster/vector/group to use "-" instead

* Rename RasterData to Raster

* Rename GraphicGroup to Group

* Fix migrations and rename graphic_element.rs -> graphic.rs

* Rename TaggedValue::ArtboardGroup -> TaggedValue::Artboard
2025-08-04 04:53:25 -07:00
0SlowPoke0
fd66f29853
Fix Shape tools bugs with stars/polygons with negative radii and circle radius click detection when viewport is zoomed (#2986)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fixed spacing,click detection in radius gizmo fix drag in start point radiius gizmo

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-04 01:14:28 +00:00
Keavon Chambers
5637f01845
Rename GraphicElement -> Graphic and trait GraphicElementRendered -> Render (#2987) 2025-08-03 16:15:02 -07:00
Keavon Chambers
9a4a7dee80 Make auto-saving happen once per second 2025-08-03 15:20:30 -07:00
Timon
8fad295e36
Make checkboxes not use interior mutability (#2976)
* Make checkboxes not use interior mutability

* Use copy instead of cloning

* Fix

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-03 15:16:21 -07:00
Dennis Kobert
7fcdad1f88
Remove message deferral for text creation (#2978)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Remove message deferral for text creation

* Restructure Trigger Navigation ready to not hijack the PTZ Update
2025-08-03 16:06:30 +02:00
Keavon Chambers
a0ce56d9b6
Rename Instances<T> to Table<T> and the "instance" terminology to "TableRow" and "element" (#2981)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Instances -> Table

* instances.rs -> table.rs

* Rename occurrances of the word "instances"

* .instance -> .element

* Instance* -> TableRow*

* Rename Table and TableRow methods to not say "instance"

* Remove presumed unused serde defaults now that tables default to length 0 not 1

* Rename occurences of the word "instance"

* Un-alias the RasterDataTable<Storage>, VectorDataTable, GraphicGroupTable, ArtboardGroupTable typedefs

* Move artboard type and node code out of graphic_element.rs to a new artboard.rs

* Organize the TaggedValues

* Fix tests

* Fix prior regression with Image Value node not upgrading
2025-08-03 04:12:18 -07:00
Timon
67123f55dc
Use target family insted of target arch (#2975)
* Replace cfg target_arch wasm32 with target_family wasm

* Fix warnings in test builds from previous pr
2025-08-03 10:28:53 +00:00
James Lindsay
1e3c3da3fe
Fix the Path tool erroneously showing editable geometry overlays belonging to hidden Path nodes (#2932)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Ignore hidden path nodes

* Use correct path node vector modification

* Break test

* Better fix for test

* Fix rustfmt

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-02 22:53:05 +00:00
Adesh Gupta
c42011f8e2
Partly fix when the "Make Path Editable" button is shown as enabled (#2968)
* Fix add path node button enable

* Fix add path node button enable

* Refactor code

* Fix formatting

* Clean up logic

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-02 21:55:04 +00:00
Adesh Gupta
b9a1b2e951
Add copy/cut/paste/duplicate functionality for path geometry (#2812)
* Copy and Paste for paths

* Fix merge

* Implement Copy, Cut and Duplicate

* Fix selection of segments

* Fix formatting

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-02 21:15:01 +00:00
Timon
34a8b9b6f1
Desktop: Render overlays with vello (#2965)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Render overlays with vello

* Fix nix flake comments

* Rendering refactor with better names and code location

* Remove unnecessary overlay renders

* Post rebase fix
2025-08-02 14:27:24 +00:00
Adesh Gupta
668acd3c30
Improve the Path tool's segment editing mode and make hovering manipulators react contextually (#2860)
* Improve path editing mode

* Code review

* Tidy up UI

* Update path selection behaviour

* Fix linting

* Remove frozen flag

* Code review

* Fix segment split

* Fix deleting segments

* Add requred methods in vello overlay context

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-01 23:58:35 -07:00
0SlowPoke0
523132da17
Add 'Circle' to the Shape tool and its associated gizmos (#2914)
* merged with circle and impl inner radius gizmo for arc

* impl radius-gizmo for arc

* fix only one gizmo shown at a time

* Code review

* make hints update when changing shape,add default behaviour when dragging to make circle earlier fixed to from center

* fixed arc-radius hover threshold and show arc-endpoint when hover over arc-radius gizmo

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-01 22:23:21 -07:00
Dennis Kobert
97bd0ebac4
Fix Vello rendering on wasm
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-01 13:13:25 +02:00
Dennis Kobert
f15023ef58
Fix regression with double-click in the Path tool not working (#2963)
* Fix double click in path tool not working

* Remove debug line

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-31 21:53:28 +00:00
Dennis Kobert
08ec1d08f6
Desktop: Execute editor and node graph natively (#2955)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Desktop: Execute editor and node graph natively

* Remove decouple execution feature

* Disable feature gate for native communication functions

* Avoid ininite message loop on an infinite canvas

* Add any lint exception

* Build evaluation loop

* Fix texture passing message

* Cleanup

* More cleanup

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-07-31 10:26:36 +00:00
Keavon Chambers
abab145d65 Fix the Rasterize node to not ignore raster graphical data 2025-07-31 01:21:32 -07:00