Dennis Kobert
a4ec50d8ba
Improve robustness and performance of the boolean operation algorithm ( #2191 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Improve perf of path bool lib
* Use swap remove
* Use outer/inner bounding box for inclusion testing
* Reuse allocations for hit testing
* Use direct root finding for inclusion testing
* Reuse bounding box
* Use faster hash and specify capacities
* Use hashmap based approach for find vertices
* Unroll find_vertecies loop and use 32 bit positions
* Tune initial vec capacities
* Remove unused bounding boxes
* Use smallvec for storing outgoing edges
* Improve allocations for compute_minor
* Use approximate bounding box for edge finding
* Transition aabb to use glam vecs
* Make find vertecies use 64 bit again this is slower but less likely to cause issues
* Improve intersection candidate finding
* Remove loop check in bit vec iter
* Special case cubic line intersections
* Optimize grid rounding and add debug output
* Remove file write
* Remove faulty line intersection
* Fix grid rounding
* Improve robustness and cleanaup code
* Make elided lifetime explicit
* Fix tests
* Fix a boolean ops crash
* Add comment
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-21 23:15:36 +00:00
Dennis Kobert
e4dd3ce806
Desktop: Use multithreaded CEF event loop on Windows and Linux ( #3076 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Prototype multi threaded event loop
* Fix input event dispatch
* Remove dead code
* Reenable do_message_loop_work for macos targets
* Cleanup
* Review cleanup
* Remove outdated comment
* Attempt to fix texture import errors
---------
Co-authored-by: Timon Schelling <me@timon.zip>
2025-08-21 19:46:13 +00: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
Dennis Kobert
e56f858ced
Desktop: Implement GPU accelerated offscreen rendering and improve rendering efficency ( #3056 )
...
* WIP accelerade offscreen canvas implementation
* Implement vulkan dmabuf import
* Add fps printing
* Add feature gates
* Forgot to add file
* Experimental windows support
* Cast ptr to isize
* Remove testing chrome://flags url
* Experimental macos support for texture import
* Cleanup code and improve latency / frame pacing
* Add path for importing textures on windows through dx12
* Update doc comment
* Import textures through metal on macos
* Review cleanup
---------
Co-authored-by: Timon Schelling <me@timon.zip>
2025-08-21 10:09:38 -07:00
Dennis Kobert
97978c2491
Desktop: Change feature guard to Linux instead of Unix for Wayland
2025-08-21 10:08:29 -07:00
Timon
2c8913416d
Desktop: Move wrapper to separate crate ( #3073 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Move desktop wrapper to separate crate
2025-08-20 15:41:34 +00:00
Timon
30e5d66105
Desktop: Implement desktop wrapper module ( #3039 )
...
* Prototyping desktop wrapper api
* Separate into multiple modules
* Some fixup
* Reimplement most functionality with editor api
* Fix texture life time crashes
* Fix scale
* Implement editor wrapper message queue
* Improve performance
* Handle native messages directly without submitting to event loop
* Fix overlay latency
* Move editor message execution to executor allows no shared state in editor wrapper
* Small clean up
* Small cleanup
* Some renames
* Cleaning up desktop wrapper interface
* Fix formatting
* Fix naming
* Move node graph execution result handling to app
* Fix FrontendMessage RenderOverlays usage
* Reimplement file drop and clean up file import and open messages
* Remove dbg
* Post merge fix
* Review changes
2025-08-20 13:27:36 +00:00
Dennis Kobert
a70c48f69a
Use lyon_geom for intersection calculation of bezier segments ( #3071 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add lyon_geom for cubic cubic intersections in he path bool crate
* Remove cubic line intersection for now
2025-08-20 13:59:11 +02: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
Firestar99
b44a4fba1e
node-macro: cleanup ParsedField
struct ( #3064 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* node-macro: cleanup `ParsedField` struct
* node-macro: fixup tests
2025-08-19 09:25:58 +00:00
Ciftci
36a1453d03
Add workaround for a Safari bug where our number input fields can't be released from click-and-drag ( #3053 )
...
Added fallback for Safari to trigger a pointerLockChange in case it doesnt fire automatically
Co-authored-by: seabeeberry <seri@Mac.fritz.box>
2025-08-18 22:30:18 -07: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 )
...
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
mTvare
5ed45ead6f
Fix click target not extending to correct limit for aligned strokes ( #3065 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fixes #3047
2025-08-18 12:30:57 -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 )
...
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 )
...
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
Keavon Chambers
3bcec37493
Remove the deprecated/archived Bezier-rs library from the repo ( #3058 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Website / build (push) Has been cancelled
Remove the Bezier-rs library from the repo
2025-08-16 17:29:00 -07: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 )
...
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
Timon
67a7b98f4f
Desktop: Fix UI and viewport blending ( #3052 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Tell the GPU that the UI texture is in sRGB format so that it is converted to linear before sampling
* Do blending in srgb
* Revert "Tell the GPU that the UI texture is in sRGB format so that it is converted to linear before sampling"
* Remove unnecessary srgb linear conversions
* Blend overlays and viewport in linear and return early when ui is fully transparent
2025-08-14 11:42:55 +00:00
Timon
2995113b39
Desktop: Update CEF to 139.0.1 ( #3046 )
...
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
Update cef to 139.0.1
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-13 12:55:42 -07:00
jneem
6c3b7b23c5
Simplify Bezier-rs using poly-cool as the root finder ( #3031 )
...
* Convert tangents_to_point
* Convert normals_to_point
* Port over roots and project
* Remove symmetrical_basis
* Code style nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-13 19:10:10 +00:00
Keavon Chambers
bdc029c692
Add Table<Gradient> as a graphical type ( #3051 )
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 )
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 )
...
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
Timon
8d0c9d7b81
Remove cargo-about timeout to make builds work on slow machines ( #3032 )
...
nixpkgs review in github actions will fail otherwise
2025-08-11 11:14:45 +00:00
Keavon Chambers
2bb4509647
Replace the Spreadsheet panel with an improved Data panel ( #3037 )
...
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
Timon
81abfe147a
Desktop: Remove editor from wasm wrapper ( #3023 )
...
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* Add a few useful npm scripts for native
* Allow compiler to prune editor from wasm wrapper in native builds
* Fix warnings
* Review cleanup
* Fix npm desktop build script names
2025-08-07 16:26:20 +00: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
d2ddf94bd0
Include graph runtime benchmarks in CI perf regression runs ( #2780 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Include graph runtime benchmarks in ci regression run
* Update benchmarking workflow
* Add render slowdown
* Fix baseline cache
* Remove benchmark compilation validation run
* Include render node in runtime benchmarks
* Collapse sections without changes
* Readd rulers between the sections
* Add review suggestions
* Rulers rule
* Fix whitespace
2025-08-07 14:32:19 +02:00
Timon
b491cfcd2b
Desktop: Fix the Text tool not working with the hole punch ( #3012 )
...
* Make viewport element transparent when hole punch is enabled
Instead of removing the viewport element completely we make it transparent
Allows the text tool to work
* Fix formatting
2025-08-07 13:49:03 +02:00
Timon
5d17f5dcce
Fix broken SVG file export regression ( #3021 )
...
Js is a joke
2025-08-07 11:23:31 +00:00
Dennis Kobert
9b8935d201
Add iai versions of the runtime benchmarks ( #3016 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Include graph runtime benchmarks in ci regression run
* Update benchmarking workflow
* Remove ci script changes
2025-08-07 00:48:25 +02:00
Dennis Kobert
e003389526
Desktop: Implement missing vello overlays ( #3004 )
...
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
Timon
5f2432cacf
Desktop: Open links in default browser and prevent popups ( #3006 )
...
* Deny all browser popups
* Open links with default browser
* Fix review comments
2025-08-06 15:28:10 +00:00
Timon
0462d0ea2f
Desktop: Linux improve desktop integration ( #3003 )
...
* Move consts to extra module
* Add desktop icons
* Add xdg desktop file
* Improve window attributes
* Make icon background white
2025-08-06 15:05:38 +00:00
Firestar99
caa228a1ec
Shaders: graster-nodes
no-std fixups ( #2984 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* wgpu-executor: remove useless features
* wgpu-executor: cleanup copy-pasted code
* gcore-shaders: no_std fixups
2025-08-06 14:10:08 +00:00
Timon
1742e6000a
Desktop: Add some missing key codes ( #3011 )
...
Add some missing key codes
2025-08-06 15:33:13 +02: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 )
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
Dennis Kobert
309a64340b
Queue messages in the frontend when they can't be processed ( #3005 )
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-08-05 22:52:54 +02:00
James Lindsay
23eb5998db
Fix pen tool ( #3002 )
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
6dd17f76c1
Fix pointer offset from viewport position
2025-08-05 03:26:09 -07:00