James Lindsay
7c28a53cd1
Fix the Spline node to maintain stable segment IDs ( #3321 )
...
Stable segment ids in the spline node
2025-10-31 18:28:27 +01:00
Dennis Kobert
e5f40a3316
Add 'Instance Map' and 'Instance Vector' nodes ( #3229 )
...
* Add map instance and extract vector nodes
* Cleanup
* Inject index in map node
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-10-27 15:56:08 +01:00
Dennis Kobert
f102801059
Fix incorrect implementations of the Hash and PartialEq traits on Table<T> ( #3306 )
...
Fix incorrect implementations of the Hash and PartialEq traits on Table
2025-10-27 15:55:36 +01:00
Ashish Mohapatra
6ca25e4ea9
Fix capacity overflow in offset path node ( #3308 )
...
* Fix capacity overflow in offset path node
* Reverted accuracy to 1e-3
* Refactor offset path segment check
* Add squared distance for degenerate cubic bezier curves
2025-10-27 12:33:38 +00:00
jneem
3a80560a68
Move from poly-cool to polycool ( #3309 )
2025-10-24 22:12:01 +00: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
snskar
34d0b76333
Fix drawing over erased Brush tool paths ( #3262 )
...
fix draw over erased behaviour
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-10-14 14:30:57 -07:00
Timon
e39fbb8903
Desktop: Fix non-Vello render mode ( #3259 )
...
* fix non vello render mode
* move export overide desision from reneder node to node runtime
* fix
* cleanup
* Fix typo and cleanup export logic
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-10-09 11:31:35 +02:00
Keavon Chambers
3364059e02
Add tooltip documentation to the graphic flattening nodes and string nodes ( #3269 )
2025-10-07 16:50:18 +02:00
Keavon Chambers
55a64064b0
Make the 'Decompose Rotation' node return degrees not radians; add tooltip documentation to transform nodes ( #3268 )
...
Make the 'Decompose Rotation' node return degrees not radians, and add tooltip documentation to transformation nodes
2025-10-07 09:36:35 +00:00
Keavon Chambers
91b08f4b4f
Add tooltip documentation for animation-focused nodes ( #3267 )
2025-10-07 07:00:27 +00:00
Keavon Chambers
fc9afce504
Add tooltip documentation for blending-focused nodes ( #3266 )
2025-10-07 00:23:50 +00:00
Keavon Chambers
6c033a2cd6
Tidy up tooltip documentation for several assorted nodes ( #3265 )
2025-10-07 01:28:03 +02:00
Firestar99
074a33f58f
Enable debug logging for cargo-gpu ( #3207 )
...
debug cargo-gpu: debug logging
2025-10-05 11:19:21 +00:00
Oliver Davies
3cfacccc61
New node: Remap ( #3245 )
...
* Added Remap node
* Addressed feedback for mapping range
* Removed extra defaults
* Apply suggestion from @Keavon
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-10-03 05:51:01 +00:00
Timon
7e8c6cc432
Desktop: Native export ( #3188 )
...
* Testing native export with raster convert implementation
* Jpg export
* Fix transparent export
* move texture conversion to runtime
* fixup
* move image encoding into editor export function
* remove unused frontend message
* remove unused type
2025-10-01 21:13:40 +02:00
Dennis Kobert
84e44810d2
Run preprocessing on benchmarks and fix deadlock ( #3230 )
2025-09-27 12:36:29 +02:00
Dennis Kobert
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
Timon
ed22e6a63d
Desktop: Add rudimentary support for custom WGPU adapter selection ( #3201 )
...
* rudimentary custom wgpu adapter selection
* WgpuContextBuilder
* wasm fix
* fix wasm warnings
* Clean up
* Review suggestions
* fix
2025-09-25 14:38:26 +00: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
Salman Abuhaimed
edc018d7b4
Fix Text node regression where font styles within a family are not being applied ( #3186 )
...
Fix text node styles not being applied
2025-09-18 19:11:50 -07:00
Keavon Chambers
9d15e56ce1
Fix and clean up typing-related flaws with the Math category of nodes
2025-09-18 16:37:01 -07: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
Timon
3fe7c477e9
Desktop: Switch to the latest unreleased version of Winit ( #3177 )
...
* Use unstable winit
* Improve
* Remove unnecessary heap indirection
2025-09-17 16:40:43 +02:00
Keavon Chambers
4662cbbbc1
Make the 'Count Elements' and 'String Length' nodes return f64 for consistency with 'Instance Index'
2025-09-16 16:08:03 -07:00
Dennis Kobert
e4d2805115
Add workaround for cache context nullification breaking nested loop indexes ( #3178 )
...
* Disable caching for the instance repeat etc. nodes
* Add usize implementation for caching and monitor nodes
* Change return type of instance index node back to f64
* Cleanup while loop
* Remove stray usize changes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-09-16 21:59:43 +00: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 d9e8a71cd095971008b2e24fe90bbab9d6467115.
2025-09-16 13:41:44 -07:00
Keavon Chambers
a1df16bc9e
Switch infinite color/gradient rendering to a more robust approach
2025-09-13 14:03:11 -07:00
Salman Abuhaimed
3cc2aa8d89
Fix text node thread locals not being updated ( #3173 )
2025-09-13 11:33:00 +00: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
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
Timon
9411612d7f
Move shader entrypoints to separate crate ( #3157 )
2025-09-10 10:20:45 +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
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
Priyanshu
c384175910
Improve stability of the 'Sample Points' node ( #3119 )
...
improve perimeter calculation of the path bezier segments when it is very close to linear bezier curve
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-09-08 04:20:46 +00:00
0SlowPoke0
3e50d177b7
Add "Grid" to the Shape tool along with row/column gizmos ( #2921 )
...
* integrated grid shape in shape-tool
* add overlays,detection,transform for gizmo
* fix compile issues
* handle negative correctly,fix undo redo and abort
* fix missed merge conflicts
* fixed mouse cursor,correctly translatiing
* cleanup
* fix click-target area inside rect and spacing
* add 10px closer to gizmo line
* resolved conflicts
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-09-07 17:53:37 -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
Firestar99
ad99c14b29
Shaders: Provide WgpuExecutor via Scope ( #3144 )
...
shaders: automatically connect wgpu-executor
2025-09-05 18:51:17 +00:00
Firestar99
f12b4da549
Shaders: add `BufferStruct` to support bool and enums ( #3109 )
...
* node-macro: modernize `node` macro
* node-macro: add `CrateIdent` struct containing resolved crate paths
* shaders: add trait `BufferStruct` and derive macro
* shaders: `gamma_correction` and `channel_mixer` gpu nodes
* shaders: `selective_color` gpu node
* shaders: `brightness_contrast_classic` gpu node
* shaders: append GPU to display name
* node-macro: fixup doc links
* shaders: consistently append " GPU" to all shader node names
2025-09-05 16:32:41 +00:00
Dennis Kobert
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
Firestar99
5d441c2e18
Shaders: runtime and shader node codegen ( #2985 )
...
* shader-rt: initial
* shader-rt: fix recursion when generating shader node
* shader-rt: replace gpu node's args and ret types with `Raster<GPU>`
* shader-rt: properly cfg out the gpu node
* shader-rt: fix `impl Context` in the wrong places
* shader-rt: disable gpu blend node, needs two images
* shader-rt: connect shader runtime
* shader-rt: pass WgpuExecutor by reference
* shader-rt: correct bindings with derpy arg buffer
* shader-rt: manual pipeline layout, fixing errors when bindings got DCE'd
* shader-rt: correct RT format, working invert gpu node
* shader-rt: cleanup codegen with common sym struct
* shader-rt: correct arg buffer handling
* shader-nodes feature: put shader nodes behind feature gate
* shader-nodes feature: rename any `gpu_node` to `shader-node`
* shaders-rt: fix wgpu label name
* shaders-rt: explain fullscreen_vertex coordinates with a drawing
2025-09-05 08:33:53 +02:00
Firestar99
a10103311e
Shaders: rust-gpu integration to compile shader nodes to WGSL ( #3097 )
...
* shaders: shader compilation setup
* nix: use rustc_codegen_spirv.so from nix
* shaders: codegen for per_pixel_adjust shader nodes
* shaders: disable nodes needing bool
* shaders: `#[repr(u32)]` some enums
* shaders: add lint ignores from rust-gpu
* shaders: fix node-macro tests
* gcore-shaders: toml cleanup
* shader-nodes feature: put rust-gpu to wgsl compile behind feature gate
* shaders: fix use TokenStream2
* shaders: allow providing shader externally
* Update iai runner in workflow
---------
Co-authored-by: Timon Schelling <me@timon.zip>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-09-02 14:10:32 +00:00
Keavon Chambers
b5ebe78f5e
Update all frontend npm dependencies except Svelte and Vite ( #3120 )
...
* Upgrade node dependencies except Svelte 5 and its peer deps
* Fix lint errors
* Fix previous Rust deps upgrade breakage
* Fix demo artwork
* Allow profiling CI workflow to fail
2025-09-01 17:22:30 -07:00
Keavon Chambers
29684dde45
Update Rust dependencies ( #3112 )
...
* Update Rust dependencies
* Bump versions
* Try older ctor
2025-08-30 20:06:56 -07:00
Adam Gerhant
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
mTvare
c14e67ec28
Fix outside stroke alignment not using masks when transparent ( #3060 )
...
* Fix outside stroke alignment not using masks when transparent
* Fix for vello
* fix fixes
* cargo fmt
* scale stroke by align type
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-28 13:28:51 -07:00
Firestar99
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
Priyanshu
9987112cc9
New node: 'Separate Subpaths' to break subpaths into individual vector table rows ( #3069 )
...
* impl separate paths node
* rename
* refactor
* Rename nodes 'Split Segments' -> 'Cut Segments' and 'Split Path' -> 'Cut Path'
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-28 06:07:09 +00:00
Firestar99
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
Priyanshu
57853f755b
Fix box selection regression where only intersected, not contained, objects get selected ( #3093 )
...
* fix insideness checking
* fix selection insideness checking
* Revert changes to comments
* Revert unneed rename
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-27 21:22:13 +00:00
Firestar99
a744499f4f
Shaders: more `graster-nodes` no-std fixups ( #3090 )
...
* gcore-shaders: fix missing `num-traits/libm` features
* graster-nodes: fix missing cfg on use statements
* shaders: use unchecked Color constructors
* graster-nodes: remove async from shader nodes not needing it
* gcore-shaders: remove explicit fn pointer
* graster-nodes: make kurbo std-only
* graster-nodes: replace glam reexport with normal dep
* gcore: impl Display for ProtoNodeIdentifier
* unify glam workspace dep
2025-08-26 18:25:05 +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
bb364c92ad
Fix automatic Into node insertion ( #3087 )
...
Fix automatic into node insertion
2025-08-23 18:21:54 +02: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
Dennis Kobert
a4ec50d8ba
Improve robustness and performance of the boolean operation algorithm ( #2191 )
...
* 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
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
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 )
...
* node-macro: cleanup `ParsedField` struct
* node-macro: fixup tests
2025-08-19 09:25:58 +00:00
mTvare
5ed45ead6f
Fix click target not extending to correct limit for aligned strokes ( #3065 )
...
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
Adesh Gupta
52174fa4c2
Remap Path tool point sliding to G G ( #2913 )
...
* 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 )
...
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
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
Keavon Chambers
2bb4509647
Replace the Spreadsheet panel with an improved Data panel ( #3037 )
...
* 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
d2ddf94bd0
Include graph runtime benchmarks in CI perf regression runs ( #2780 )
...
* 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
Dennis Kobert
9b8935d201
Add iai versions of the runtime benchmarks ( #3016 )
...
* Include graph runtime benchmarks in ci regression run
* Update benchmarking workflow
* Remove ci script changes
2025-08-07 00:48:25 +02:00
Firestar99
caa228a1ec
Shaders: `graster-nodes` no-std fixups ( #2984 )
...
* wgpu-executor: remove useless features
* wgpu-executor: cleanup copy-pasted code
* gcore-shaders: no_std fixups
2025-08-06 14:10:08 +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 )
2025-08-05 20:55:15 -07: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
Keavon Chambers
c98477d8ed
Rename graphic subtypes to remove their "data" and "group" suffixes ( #2990 )
...
* 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
Keavon Chambers
5637f01845
Rename GraphicElement -> Graphic and trait GraphicElementRendered -> Render ( #2987 )
2025-08-03 16:15:02 -07:00
Keavon Chambers
a0ce56d9b6
Rename Instances<T> to Table<T> and the "instance" terminology to "TableRow" and "element" ( #2981 )
...
* 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
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 )
...
* 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
Priyanshu
037bcb6b26
Refactor the 'Round Corners' and 'Auto-Tangents' nodes and vector node unit tests to use Kurbo ( #2964 )
...
* add todo
* impl function to convert a bezpath to manipulator groups
* refactor few node impls
* refactor vector nodes test and few methods on VectorData struct
* refactor tests
* remove unused import
* simplify and fix morph node test
* rename vars and comment
* refactor bezpath_to_parametric function
* Code review
* fix bezpath_to_manipulator_groups function
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-02 07:44:01 +00:00
Priyanshu
2306e9866e
Refactor the 'Offset Path' node to use Kurbo entirely ( #2946 )
...
* impl function for segment intersections
* fix and improve segment intersections
* copy and refactor related segment intersection methods
* copy and refactor tests for segment intersection from bezier-rs
* impl intersection with bezpaths
* copy and refactor tests
* rename few variables in the tests module
* rename position_on_bezpath to evaluate_bezpath
* copy and refactor function to clip two intersecting simple bezpaths
* refactor comments
* copy and refactor functions for milter join
* copy and refactor milter and round join functions from bezier-rs
* it worked! refactor offset path node impl
* fix few bugs
* improve vars names and add comments
* Code review
* fmt
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-31 17:44:27 -07:00
Keavon Chambers
abab145d65
Fix the Rasterize node to not ignore raster graphical data
2025-07-31 01:21:32 -07:00
Keavon Chambers
3cc9dd79fb
Rename the Coordinate data type to Vec2 ( #2959 )
2025-07-30 22:53:36 -07:00
Keavon Chambers
4391f88d03
Update references to the latest tech stack plans
2025-07-29 15:17:41 -07:00
Dennis Kobert
2247dd9818
Desktop: Ready runtime and render node for desktop ( #2952 )
...
* Desktop: Ready runtime and render node for desktop
* Address review comments
2025-07-28 23:23:35 +00:00
Keavon Chambers
66cd7a3b76
Desktop: Add the transparent viewport hole punch and hook up window button plumbing ( #2949 )
2025-07-28 02:13:32 -07:00
Adesh Gupta
75614eb9d4
Fix vector mesh editing behavior in various edge cases ( #2943 )
...
* Fix colinear switch behaviour
* Fix Tab to switch handles
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-27 00:20:39 +00:00
0SlowPoke0
3a8c1b6f97
Add Arc drawing mode to the Shape tool and the associated angle gizmos ( #2757 )
...
* implement arc gizmo handler
* fixed wrapping need to fix snapping and overlays
* fixed all the issues
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-26 14:55:38 -07:00
Salman Abuhaimed
85021fd9e0
Add text alignment to the Text node ( #2920 )
...
* Add text alignment to Text node
* Lots of renames and improvements
* Add text alignment to the Text tool
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-25 22:04:12 -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 )
2025-07-25 16:15:21 +00: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 )
...
* 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
Firestar99
e7b8b5a3b6
Shaders: `graster-nodes` no-std prep ( #2924 )
...
* 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