Commit graph

2130 commits

Author SHA1 Message Date
Adam
d2b3bc2a87 implement native -> browser communication 2025-07-25 20:31:06 -07:00
Adam
4f21693772 Create function for CEF to call 2025-07-25 18:16:59 -07:00
Adam
69ed296efb Final wasm crate structure 2025-07-25 17:19:32 -07:00
Dennis Kobert
a0081f9214 Cleanup 2025-07-25 11:01:21 -07:00
Adam
0c60ebaabc Execute editor natively 2025-07-25 11:01:21 -07:00
Firestar99
4fec24893e
Shaders: add gcore-shaders and make graster-nodes no-std (#2925)
* gcore-shaders: add crate, move `color` and `blending` from gcore

* gcore-shaders: move `AsU32`

* gcore-shaders: move `ChoiceType`, switch `Cow` for `&str`, adjust node macro

* gcore-shaders: move `registry::types`

* gcore-shaders: move `context::Ctx`

* raster-nodes: make it `no_std` with `std` feature

* gcore-shaders: fix doctest
2025-07-25 17:53:26 +00:00
Firestar99
4d5a1a6ff1
remove inner enum from raster types (#2929)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-25 16:15:21 +00:00
Dennis Kobert
a52ee70e4c
Desktop: Directly upload frame buffer (#2930)
* Upload frame buffer directly to gpu texture

* Disable cef GPU acceleration to prevent crashes

* Cleanup code

* Address review comments

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-07-25 14:04:46 +02:00
Adam Gerhant
735d58a647
Desktop: Remove unnecessary dependencies in the desktop crate (#2934)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* remove unnecessary dependencies

* Add start-desktop
2025-07-25 01:20:27 -07:00
mTvare
e6f1ad96b3
Fix inside stroke alignment not working in the Vello renderer (#2936)
* Fix inside stroke alignment not working in vello

* cargo: fmt
2025-07-25 00:15:05 -07:00
mTvare
72f1047a27
Display images in the SVG viewport renderer via canvases instead of base64 PNGs (#2903)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* add: move images as rendered canvases to node_graph_executor

* add: added the frontend message

* fix: bytemuck stuff

* fix: canvas element breaking

* fix: width issues

* fix: remove the old message

* npm: run lint-fix

* fix

* works finally

* fix transforms

* Fix self closing tag

* fix: reuse id

* fix: have it working with repeat instance

* cargo: fmt

* fix

* Avoid "canvas" prefix to IDs

* fix

* fix: vello issue from 6111440

* fix: gpu stuff

* fix: vello bbox

* Code review

---------

Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-24 17:14:38 -07:00
Timon
45bd031a36
Use flake compat to provide the nix flakes dev shell to non flake users (#2926)
* Use flake compat to provide the nix flakes dev shell to non flake users

* Move shell.nix to .nix sub folder
2025-07-24 21:48:57 +00:00
Dennis Kobert
f184e4aab2
Desktop: Refactor window state to not require locking (#2928)
* Replace window state with channels and improve resize performance

* Move Cef Handler into the cef module

* Reuse textures

* Test cef scheduling

* Schedule self render if texture is outdated

* Address review comments
2025-07-24 17:51:55 +00:00
Timon
9f4f3681c3
Desktop set cef data and cache directory (#2927) 2025-07-24 16:56:57 +00:00
Firestar99
e7b8b5a3b6
Shaders: graster-nodes no-std prep (#2924)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* raster-nodes: remove commented out index node

* raster-nodes: move `CubicSplines` to separate mod

* raster-nodes: create `mod blending_nodes` and move assoc nodes

* raster-nodes: move node `gradient_map` to its own mod
2025-07-24 13:32:10 +00:00
Firestar99
59f3835c5d
Shaders: node macro (#2923)
* node_macro: cleanup attr parsing

* node_macro: add `cfg()` attr to feature gate node impl

* node_macro: add `shader_nodes` option

* node_macro: fixup tests
2025-07-24 12:58:30 +00:00
Firestar99
2d11d96b4a
Re-add upload texture (#2915)
* vello: code cleanup of resource overwrites

* upload_texture: upload cpu textures as SRGBA8

* vello: fix wgpu::Texture leak within vello's `context.resource_overrides` HashMap

* fix missing feature gate
2025-07-24 10:51:03 +00:00
Szilveszter Ábrám
0d43ad2ea0
Fix Path tool path drag ghost outline sticking to viewport, not moving with document while dragging (#2912)
* Added ghost outline clearing when moving outlines via Path Tool

* Fix ghost outline staying fixed during drag by storing it in document space

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-24 09:28:17 +00:00
Timon
30abc92900
Implement basic desktop app with chromium embeded framework (#2874)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Remove tauri based desktop app

* Allow bzip-1.0.6 license

* Implement basic cef based desktop app

* Cleanup build setup

* Use wait until and execute cef loop more frequently

* Remove custom do browser work event

* Move WinitApp into its own module

* Cleanup event handling

* Cleanup + Scheudule cef message loop work

* Fix cpu overheating on idle: https://xkcd.com/1172/

* Use tracing crate for logging instead of println

* Rebase to main

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-07-23 20:27:55 +02:00
Firestar99
890da6a3c3
Clean up code by using Iterator::collect() when constructing instance tables (#2918)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* instances: `Iterator::collect()` instances

* instances: adjust nodes to use iterators

* fix warnings on master

* Bump MSRV

* Port the remaining usages

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-23 05:51:40 +00:00
mTvare
032f9bdf72
Upgrade vello to version 0.5.0 and wgpu to version 25 (#2890)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* update: vello

* fix compile errors

* create target texture lazily

* fix TextureBlitter texture format mismatch

* use `futures:🔒:Mutex` instead of std Mutex

---------

Co-authored-by: Firestar99 <firestar99@sydow.cloud>
2025-07-22 19:51:02 +02:00
Priyanshu
30e5567ff2
Fix collision detection for node drag-and-drop onto a wire (#2910)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* refactor

* check if the wire is inside the node itself
2025-07-19 07:38:46 -07:00
Adesh Gupta
7ee0d9a724
Make the node chooser auto filter by layer input type when applicable (#2841)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Fix showing only compatible nodes

* Implement search on Add Node button

* Fix add node behaviour

* Improve type identification logic

* Fix input type identification

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-19 09:39:39 +00:00
Keavon Chambers
f299497090
Add shaking input gesture to disconnect a node being dragged (#2889)
* Add shaking input gesture to disconnect a node being dragged

* Improve shake detection algorithm

* Fix reconnection

* Improve shake reconnect logic

* Fix history

---------

Co-authored-by: Adam <adamgerhant@gmail.com>
2025-07-19 02:11:52 -07:00
Adam Gerhant
e4ec67d852
Fix wires on document change and errors on hidden nodes (#2897)
* Fix wires on document change and errors on hidden nodes

* Code cleanup
2025-07-19 01:48:42 -07:00
Salman Abuhaimed
7ef9e5a3e8
Fix Text node glyph duplication and wrong tilt calculation with per-glyph instances (#2907)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fix: text node subpaths duplication

* fix: text node tilt calculation for per-glyph instaces
2025-07-18 11:00:24 -07:00
Adesh Gupta
4427e97f73
Add "Make Path Editable" buttons in the Path tool control bar and Layer menu (#2900)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add graph message for adding a path

* Disable options when adding path tool is not possible

* Move Layer menu entry location

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-18 12:22:40 +00:00
Keavon Chambers
6f46f21e21
Improve the HTTP request nodes and add new related nodes (#2896)
* Improve the network request nodes and add new ones to process data

* Use Content-Type: application/octet-stream

* Add 'Gamma Correction' node
2025-07-18 05:03:50 -07:00
Keavon Chambers
561b671f8d
Add transform-related nodes to improve transformation abilities (#2893)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Improve transformation abilities with transform-related nodes

* Fix Transform -> Merge and Transform -> Artboard connections
2025-07-17 11:58:57 -07:00
Keavon Chambers
8f26c5c2ad
Remove the UVec2 and IVec2 graph data types and have Artboard use DVec2 (#2894)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-16 18:45:10 -07:00
Keavon Chambers
99966d848d Fix text per-glyph instance overlays and click target issues
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
2025-07-14 14:47:01 -07:00
Keavon Chambers
112efe88c2 Add multi-level loop indexing with the 'Instance Repeat' node
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-14 02:55:44 -07:00
Keavon Chambers
be8378309d Avoid crashing if an error occurs in the layout widget update handlers 2025-07-14 00:24:17 -07:00
Oliver Davies
74e35f026f
Fix regression with GRS cancellation being broken (#2877)
Fix for cancel regression in path tool
2025-07-13 22:03:51 -07:00
Keavon Chambers
88ac275e47 New nodes: 'Greatest Common Divisor' and 'Least Common Multiple'
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-13 19:43:28 -07:00
Salman Abuhaimed
166eb00c9c
Separate the Text node's generated glyphs into separate vector table rows (#2821)
* Separate glyphs into Vector data rows

* Fix `String Length` node

- Properly count characters with
`str.chars().count()` instead of bytes `str.len()`
- Change `String Length` node's output to `u32`

* Apply transform on instance instead of applying it when drawing the glyph

* Add checkbox to enable/disable per-glyph instances

* Tooltips

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-13 18:06:41 -07:00
Mohd Mohsin
c5800aa96e
Fix the Bevel node so it applies a consistent bevel size regardless of angle (#2293)
* feat: update the bevel algorithm for same bevel length

* Fix: Resolves issue in bevel algorithm

* fix bevel algorithm

* Feat : update the bevel algorithm for bezier curve

* Feat: Add support for rounded and inward-rounded Bevel options

* fix bevel algo for curves

* Nits

* refactor area node

* refactor close path node

* small refactor of 'check_point_inside_shape' method

* copy is_linear function from bezier-rs lib

* refactor bevel node implementation

* cleanup

* refactor bevel implementation

* fix transformation

* cleanup

* update the bevel algorithm

* Code review

* Clean up setup logic for failing test

* update tests to reflect new algorithm

* Decimal integer nits

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: indierusty <indierusty@gmail.com>
2025-07-13 21:45:51 +00:00
Oliver Davies
e89cded4b8
Add selection cycle and gray pre-selection outlines to the Path tool, and Tab to swap Select/Path tools (#2818)
Some checks failed
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
Website / build (push) Has been cancelled
* Added initial version of this feature for the path tool

* Removed debug statements

* Thickened the overlay width

* Added hover highlighting for path tool

* Experimental switch to path tool at leaf layer

* Ghost outline initial implementation

* Added tab swap for select tool -> path tool

* Minor fix for Select Tool dbl click -> Path Tool

* Added support for ghosts when using GRS in the path tool

* Fixed GRS undo bug, vastly improved hover behavior and now clearly visualize next double click target

* Fixed unused import warnings

* Updated behavior to handle mouse movement cases, reverted line width to 1px

* Fixed merge behavioral issues

* Disabled Select Tool to Path Tool double click toggle, fixed single click drill through for special case

* Clean up of unused consts and comment

* Properly cancel the drill through state when the mouse moves

* Fix some stuff

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-13 08:26:36 +00:00
Keavon Chambers
d6d1bbb1e6 Add editor structure outline to the developer guide on the website 2025-07-12 23:09:29 -07:00
Keavon Chambers
765092fbe9
Rename the message system's 'data' argument to 'context' (#2872) 2025-07-12 22:50:59 -07:00
Firestar99
4c75ddf936
Refactor node migration to be less susceptible to forgetting outdated strings (#2853)
Some checks failed
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* migration: make document migration use ProtoNodeIdentifier

* migration: NodeReplacement struct for better formatting

* migration: test for duplicates and fix them
2025-07-10 17:40:54 -07:00
Adesh Gupta
912e6f61a9
Fix regression with inability to drag segments using the Path tool's segment mode (#2850)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fix segment dragging
2025-07-10 08:51:25 +00:00
James Lindsay
13ad814639
Add a complexity limit on displaying layer thumbnails to improve performance (#2828)
* Skip complex layer thumbnails

* Set Raster<GPU> to have usize::MAX render complexity

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-10 07:57:45 +00:00
Keavon Chambers
ceffcfd8df
Update website deployment CI script to output auto-generated code docs artifacts (#2849) 2025-07-09 23:51:25 -07:00
Kavin
e02510303e
Add X and Y offset distance overlay while dragging with the Select tool (#2814)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add offset overlay to select tool

* Add overlay to Dragging

* Add axis align behavior

* Style changes

* Add trim to string

* reduce code duplication

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-09 10:49:39 +00:00
mTvare
a40de58c7c
Fix brush bounding boxes by making BrushCacheImpl's hash not shared between different instances (#2845)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fix: add cache to each layer

* fix: warning

* fix: tests

* Clean up code

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-09 06:45:41 +00:00
Mohd Mohsin
00236c8136
Generate a visualization of the editor's hierarchical message system tree (#2499)
* Feat: implement the hierarchical tree for visualization

* rename HierarchicalTree trait function

* feat: change the HierarchicalTree from String to DebugMessageTree struct

* Nits

* feat: impliment proc macro to extract field from messagedata structs

* update the hierarchical-tree for hanlder data

* feat: added message handler struct to hierarchical tree

* feat: add the line number to message handler struct

* feat: added handler path to tree and NITS

* clean the white spaces in type string

* fixes some white spaces

* feat: added path to message enum in hierarchical tree

* feat: add file creation of hierarchical message system tree

* cleanup

* Code review

* Add todo comment for deferred change

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 19:13:51 -07:00
HWienhold
d0e1d8982f
Allow tooling to treat near-zero-length handles as zero-length when converting to colinear (#2747)
fix colinear handles on connected path

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 18:47:56 -07:00
Keavon Chambers
d2f8c99744 Avoid panics during document migration 2025-07-08 18:13:05 -07:00
mTvare
8a68683a93
Add pivot type selection with Custom Pivot, Origin (Average Point), and Origin (Active Object) to the Select tool (#2730)
Some checks are pending
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* add origin

* cleanup pivot

* a lot of stuff

* reset pivot

* fix transform with pivot issues

* fixes

* some more cleanup

* fixes

* finally works

* origin fixes

* fix spaces

* fix using dragged_layers

* simplify pivot logic

* fix bugs

* fix the final bug

* fix in select_tool

* fix updates

* some more refactors to fix misunderstanding and refactor

* add checkboxes

* fix labels

* fix stuff which broke at merge

* update

* cargo fmt

* fix serde crash

* fix pivot not updating on move

* fix pivot not becoming last active refernce

* fix redraw issues

* add: active pivot

* cargo fmt

* fix pivot showing up in default mode

* add: pivot pin

* fix: use pin icons

* cargo: cargo lock update?

* fix: use checkbox instead of Overlays

* refactor: add dot to path_tool

* add: active origins

* UI tweaks

* add: add all of the stuff for path tool

* remove: unused layer

* fix: pivot pinning and origin angle

* fix: pin only if moved in first place

* cargo: fmt

* fix: pivot use disabled method

* fix: remove redudant NoOp

* fix: 3 stuff

* fix: select from elsewhere

* fix: compass rose wobbling around

* add: move pivot on grab

* add: move pivot on nudge

* add: move pivot on Grab

* Code review and tooltips

* fixes

* fixes

* fixes

* fix: skipping artboard on bounds calculation

* fix: by default have origin

* Fix prior fix

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 09:24:54 +00:00