Dennis Kobert
6d29bfec91
Revert "Improve perf by initializing protonodes as non value"
...
This reverts commit 936bac0d1e87a549005318d5aa0368693506a7a4.
2025-12-21 22:53:12 +01:00
Dennis Kobert
2424d0830a
Add implementations to node registry
2025-12-21 22:53:11 +01:00
Dennis Kobert
0393dd057a
Implement conversion to gpu for different renderable types
2025-12-21 22:53:11 +01:00
Dennis Kobert
aade019019
Only rasterize data within bounds
2025-12-21 22:53:10 +01:00
Dennis Kobert
397068b32b
Fix transform
2025-12-21 22:53:10 +01:00
Dennis Kobert
de8bdc7209
Make texture size not 1x1
2025-12-21 22:53:10 +01:00
Dennis Kobert
4a9fb5162b
Prototype vector to raster conversion
2025-12-21 22:53:09 +01:00
Dennis Kobert
1587ff164d
Improve perf by initializing protonodes as non value
2025-12-21 22:53:09 +01:00
Dennis Kobert
1b5443aabd
Cleanup
2025-12-21 22:53:08 +01:00
Dennis Kobert
d276e2a62a
Remove redundant stable id generation
2025-12-21 22:53:08 +01:00
Dennis Kobert
e176a0b812
Fix compilation for compile benchmarks
2025-12-21 22:53:07 +01:00
Dennis Kobert
7d3efffdac
Integrate type checking into context dependency analysis
2025-12-21 22:52:58 +01:00
Dennis Kobert
532dc30028
Fix checkboxes by using deterministic widget IDs instead of random ones to make the diffing easier ( #3457 )
...
* Move diffing to trait
* Add deterministic widget ids
* Cleanup
2025-12-08 12:30:29 +00:00
Dennis Kobert
a6f83291b4
We now use normal blending instead of using Mix::Clip / the clip_layer ( #3454 )
...
* We now use normal blending instead of using Mix::Clip / the clip_layer
* Revert the revert for the clip using SrcOver
2025-12-07 10:26:24 +00:00
Dennis Kobert
406f3d93f3
Add tool for visualizing crate hierarchy ( #3315 )
...
* Add tool for visualizing crate hierarchy
* Update crate structure
* Restructure crate viz and integrate crate into workspace
* Remove transitive dependency edges
* Move png / svg creation into the rust binary
2025-11-28 15:34:45 +00:00
Dennis Kobert
a932eaedcf
Render artwork at correct resolution when using vello on wasm ( #3416 )
...
* Work on fixing rendering for wasm+vello
* Render vello canvas in wasm at the correct resolution
* Cleanup unused surface rendering code
* Remove vector to raster conversion
* Remove desktop changes
* Revert window.rs changes
* Don't round logical coordinates
* Fix desktop compilation + don't round logical coordinates for svg rendering
* Further cleanup
* Compute logical size from acutal physical sizes
2025-11-24 14:23:27 +00:00
Dennis Kobert
788e82a7d0
Add export command to Graphene CLI ( #3400 )
...
* Add export command to cli
* Fix format
2025-11-19 17:39:48 +01:00
Dennis Kobert
f61aebb777
Add a command to Graphene CLI for listing protonode identifiers ( #3399 )
...
* Add proto node name printing
* Add subcommand for printing proto node identifiers
* Address review comments
* Cargo fmt
2025-11-19 11:59:27 +01:00
Dennis Kobert and Keavon Chambers
57b0b9c7ed
Restructure node crates ( #3384 )
...
* Restructure node-graph folder
* Fix wasm compilation
* Move node definitions out of *-types crates
* Cleanup
* Fix warnings
* Fix warnings
* Start adding migrations
* Add migrations and move memo nodes to gcore
* Move nodes/gsvg-render -> rendering
* Replace some hard coded identifiers and fix automatic conversion
* Fix Vec2Value node migration
* Fix formatting
* Add more migrations
* Cleanup features
* Fix core_types::raster import
* Update demo artwork (to make profile ci work)
* Move *-types to node-graph/libraries folder
* Add missing node migrations
* Migrate more nodes
* Remove impure memo node
* More fixes and remove warning
* Migrate context and add a few missing migrations
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-11-18 10:21:54 +00:00
Dennis Kobert
181c30bc0a
Fix assorted Clippy lints ( #3390 )
2025-11-17 07:58:31 +00:00
Dennis Kobert
72a291d808
Improve web frontend performance during zooming and panning ( #3337 )
...
* WIP debounce frontend ui updates
* Reduce the number of frontend updates performed
* Improve menu bar diffing
* Cleanup in dispatcher
* Fix comment
2025-11-08 14:01:11 +01:00
Dennis Kobert
7254c470ef
Exclude procedural-string-lights from cached execution CI benchmarks ( #3351 )
...
Exclude procedural-string-lights from cached execution benchmarks
This benchmark seem to have been really flaky in our CI so we remove it
2025-11-08 10:44:22 +01: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
Dennis Kobert and Keavon Chambers
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
Dennis Kobert
557df6917d
Reduce variability noise of the profiling comment CI action ( #3303 )
...
* Only consider changes significant if they exceed an absolute ir diff
* Node graph folder change to trigger ci
* Use extra step for detecting significant perf degradations
* Reenable expanding of sections with significant changes
* Remove temp file
2025-10-23 11:39:27 +02:00
Dennis Kobert
37bf2ade11
Improve profiling CI ( #3296 )
...
* Imporve profiling CI
* Disable optimizations for graphene core in dev builds
2025-10-21 13:01:41 +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
Dennis Kobert
c697b61a7e
Clean up execution context for skipped node graph submissions ( #3233 )
2025-10-01 10:13:59 +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
84e44810d2
Run preprocessing on benchmarks and fix deadlock ( #3230 )
2025-09-27 12:36:29 +02: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
Dennis Kobert and Keavon Chambers
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 d9e8a71cd0 .
2025-09-16 13:41:44 -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
Dennis Kobert
1808bea2cf
Fix editor build script always being rerun ( #3156 )
2025-09-09 10:21:58 +00:00
Dennis Kobert
ee586be381
Fix exporting an image failing because it is ignored while playing an animation ( #3151 )
...
Fix export not working while playing an animation
2025-09-08 09:32:07 +00:00
Dennis Kobert
a1e05754e5
Revert real time playback being enabled by default ( #3150 )
2025-09-08 02:15:59 -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
Dennis Kobert
7dc86b36ca
Fix profiling CI action by avoiding command line length limits ( #3136 )
...
Fix profiling ci by avoiding comand line length limits
2025-09-04 12:22:17 +02: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 and Keavon Chambers
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
Dennis Kobert and Timon Schelling
e4dd3ce806
Desktop: Use multithreaded CEF event loop on Windows and Linux ( #3076 )
...
* 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
Dennis Kobert and Timon Schelling
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
Dennis Kobert
a70c48f69a
Use lyon_geom for intersection calculation of bezier segments ( #3071 )
...
* 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
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
Dennis Kobert
437fc70500
Desktop: Fix Node Graph Overlay ( #3042 )
...
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
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 )
...
* 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
Dennis Kobert
e003389526
Desktop: Implement missing vello overlays ( #3004 )
...
* 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
Dennis Kobert
309a64340b
Queue messages in the frontend when they can't be processed ( #3005 )
2025-08-05 22:52:54 +02:00
Dennis Kobert
8b4adf4330
Desktop: Fix Vello rendering colors with doubly-applied gamma by converting to linear in the shader ( #2998 )
...
* Fix gamma issue by applying tone mapping in the shader
Vello renders it's values to an RgbaUnorm texture
but if we try to use this in the main rendering
pipeline which renders to an Srgb surface gamma
mapping is applied twice.
* Add comment explaining why we do this to the shader
* Rename variables
2025-08-05 10:08:14 +00:00
Dennis Kobert
836a110c72
Fix broken animations by removing deadlock ( #2993 )
...
* Fix animations not working by removing deadlock
* Remove log
2025-08-04 22:51:39 +00:00
Dennis Kobert
7fcdad1f88
Remove message deferral for text creation ( #2978 )
...
* Remove message deferral for text creation
* Restructure Trigger Navigation ready to not hijack the PTZ Update
2025-08-03 16:06:30 +02:00
Dennis Kobert
97bd0ebac4
Fix Vello rendering on wasm
2025-08-01 13:13:25 +02:00
Dennis Kobert and Keavon Chambers
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 and Timon Schelling
08ec1d08f6
Desktop: Execute editor and node graph natively ( #2955 )
...
* 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
Dennis Kobert
00cfa073b8
Stub vello based overlay implementation ( #2956 )
...
* Stub vello based overlay implementation
* Fix warnings
* Don't panic on non implemented functions to allow the tests to pass
* Don't draw overlays for tests
2025-07-29 22:06:45 +02:00
Dennis Kobert
35ab266bbb
Add handler for deferred execution of messages ( #2951 )
...
* Add Handler for defered execution of messages
* Cleanup
* Track graph execution id to associate messages with their corresponding execution id
* Rename ViewportReady -> NavigationReady
* Defer layer deselection
2025-07-29 01:57:11 +02: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
Dennis Kobert and Timon Schelling
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
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
Dennis Kobert
0c376d1f9b
Disable preprocessor insertion of IntoNodes in the graph to avoid intermittent math node type errors ( #2802 )
...
Disable insertion of into nodes into the graph
2025-06-30 03:07:09 -07:00
Dennis Kobert and Keavon Chambers
357e77077d
Only compute bounding box for layers being rendered by Vello when actually used ( #2771 )
...
Only compute bounding box for vello when it is actually used
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-06-27 19:06:52 -07:00
Dennis Kobert and Keavon Chambers
a40a760f27
Add automatic type conversion and the node graph preprocessor ( #2478 )
...
* Prototype document network level into node insertion
* Implement Convert trait / node for places we can't use Into
* Add isize/usize and i128/u128 implementations for Convert trait
* Factor out substitutions into preprocessor crate
* Simplify layer node further
* Code review
* Mark preprocessed networks as generated
* Revert changes to layer node definition
* Skip generated flag for serialization
* Don't expand for tests
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-06-26 16:10:14 -07:00
Dennis Kobert
76ecdc8f1b
Fix the 'Upload Texture' node ( #2680 )
...
* Fix upload texture node
* Feature gate gpu node implemenations
2025-05-29 04:35:35 -07:00
Dennis Kobert and Keavon Chambers
7a2144e31e
Fix and reenable profiling CI action ( #2632 )
...
* Reenable profiling ci action
* Remove deprecated iai feature flag
* Remove unused import
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-05-18 20:31:15 +00:00
Dennis Kobert
9a62c1c089
Fix Poisson-disk sampling with negative space from nested subpaths ( #2569 )
...
* Fix poisson disk sampling with nested subpaths
Previously all subpaths were considered independently for the poisson disk sampling evaluation. We now check agains all subpaths which might contain the point to fix shapes with holes such as fonts with letters with holes in them
* Fix wasm demo
* Fix counting overlapping areas twice
* Rename shape variables to subpath variants
2025-04-15 13:37:20 +00:00
Dennis Kobert and Keavon Chambers
9b23c7e2db
Update Tauri to v2 and execute only the node graph in native ( #2362 )
...
* Migrate tauri app to v2
* Move flake files to sub directory
* Remove unused plugins
* Backport some of the tauri code
* Implement async node graph execution
Only move node runtime to native code
* Always use gpu feature for tauri
* Fix serialization
* Add logging filters
* Enable native window rendering with vello
* Cleanup
* Remove unused editor instance
* Remove changes from vite config
* Remove warnings
* Remove unused files
* Fix most tests
* Cleanup
* Apply frontend lint
* Readd flake.nix
* Fix tests using --all-features
* Code review
* Enable all backends
* Fix monitor node downcast types
* Change debug log to a warning
* Disable shader passthrough
* Cleanup unused imports
* Remove warning
* Update project setup instructions
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-04-14 11:43:15 +00:00
Dennis Kobert
8d8e2edc5f
Add 'Freeze Real Time' and 'Boundless Footprint' nodes as alternatives to using 'Memoize Impure' ( #2509 )
...
* WIP debugging
* Only create parent ref if var args are used in context + Cleanup
* Eval nodes with None instead of relying on MemoImpure
* Remove unused imports
* Show parent in debug output
* Remove TODO comment
2025-04-02 11:31:52 +00:00
Dennis Kobert
41288d7642
Fix the Into nodes, which were broken but unused except in GPU nodes ( #2480 )
...
* Prototype document network level into node insertion
* Fix generic type resolution
* Cleanup
* Remove network nesting
2025-03-27 02:11:11 -07:00
Dennis Kobert
5f398e79e9
Improve animation handler state management ( #2471 )
2025-03-19 11:15:22 -07:00
Dennis Kobert and Keavon Chambers
44694ff8d6
Experimental animation support ( #2443 )
...
* Implement experimental time routing to the node graph
* Allow toggling live preview with SHIFT + SPACE
* Add animation message handler
* Fix hotkeys
* Fix milisecond node
* Adevertize set frame index action
* Fix frame index
* Fix year calculation
* Add comment for why month and day are not exposed
* Combine animation nodes and fix animation time implementation
* Fix animation time interaction with playback
* Add set animation time mode message
* Captalize UTC
* Fix compiling
* Fix crash and add text nodes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-03-19 01:19:49 -07:00
Dennis Kobert and Keavon Chambers
beb1c6ae64
Upgrade to the Rust 2024 edition ( #2367 )
...
* Update to rust 2024 edition
* Fixes
* Clean up imports
* Cargo fmt again
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-03-12 17:29:12 -07:00
Dennis Kobert
1190e82322
Fix document upgrades to work recursively within subgraph nodes ( #2369 )
...
* Apply updates to the call argument recursively to subnetworks
* Fetch recursive metadata
* Apply replacements recursively
2025-03-06 15:42:58 +00:00
4ff2bdb04f
Replace Footprint/() call arguments with dynamically-bound Contexts ( #2232 )
...
* Implement experimental Context struct and traits
* Add Ctx super trait
* Checkpoint
* Return Any instead of DynAny
* Fix send implementation for inputs with lifetimes
* Port more nodes
* Uncomment nodes
* Port more nodes
* Port vector nodes
* Partial progress (the stuff I'm more sure about)
* Partial progress (the stuff that's not compiling and I'm not sure about)
* Fix more errors
* First pass of fixing errors introduced by rebase
* Port wasm application io
* Fix brush node types
* Add type annotation
* Fix warnings and wasm compilation
* Change types for Document Node definitions
* Improve debugging for footprint not found errors
* Forward context in append artboard node
* Fix thumbnails
* Fix loading most demo artwork
* Wrap output type of all nodes in future
* Encode futures as part of the type
* Fix document node definitions for future types
* Remove Clippy warnings
* Fix more things
* Fix opening demo art with manual composition upgrading
* Set correct type for manual composition
* Fix brush
* Fix tests
* Update docs for deps
* Fix up some node signature issues
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
Co-authored-by: hypercube <0hypercube@gmail.com >
2025-03-06 05:35:56 -08:00
Dennis Kobert
6becaef980
Fix Vello rendering the infinite canvas without a white background color ( #2361 )
...
Fix infinite canvas for vello
Remove debugging fill
Remove debug log
2025-03-06 11:37:00 +00:00
Dennis Kobert
e7cde88c04
Fix perf regression from updating the hints bar every frame ( #2360 )
...
* Store has_dragged in tool state
* Revert tool_data inclusion in update hints method
2025-03-06 00:23:47 -08:00
Dennis Kobert and Keavon Chambers
fd81d043a2
Fix wrong node parameter widgets, attempt 3 at #2323 ( #2334 )
...
* WIP, for TrueDoctor to continue
* Expose first implementation type as default type in field metadata
* Cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-03-01 13:26:21 -08:00
Dennis Kobert and Keavon Chambers
8d0c5d305d
Remove checks from append_subpath to improve vector editing performance ( #2190 )
...
Remove checks from append_subpath
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-03-01 11:45:49 +00:00
Dennis Kobert and Keavon Chambers
1639a2afba
Parse doc comments on node parameters ( #2163 )
...
Parse doc comments from node arguments
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-12-28 12:15:49 +00:00
35f7cfac80
Parse description from node doc comments ( #2089 )
...
* Parse description from node doc comments
* Add node description tooltips
* Code review
---------
Co-authored-by: Adam G <adamgerhant@gmail.com >
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-11-03 14:57:20 -08:00
Dennis Kobert and Keavon Chambers
3e0178a032
Add switch node and fix log to console node ( #2064 )
...
* Add switch node and fix log to console node
* Formatting
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-10-25 16:30:02 -07:00
Dennis Kobert
bb8560e5ad
Fix faulty contravariance checking ( #2025 )
...
* Fix faulty contravariance checking
* Fix documented soundness issue in type resolution
2024-10-07 12:35:27 -07:00
Dennis Kobert and Keavon Chambers
b26dfbcd7c
Always close subpaths before applying boolean ops ( #2014 )
...
* Always close subpaths before applying boolean ops
* Roundtrip boolean path through svg string
* Reverse closing path segment
* Sort result of boolean ops
* Make face visiting order deterministic
* Remove debugging code
* Remove unused post processing
* Clippy lint
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-10-03 11:20:04 -07:00
Dennis Kobert
d2f791cfb3
Make Upload Texture node resolution-aware ( #2018 )
...
* Make UploadTextureNode resolution aware
* Add TextureFrame implementations for MonitorNode
* Add TextureFrame implementation to TransformNode
2024-10-03 10:32:34 -07:00
Dennis Kobert
f8c7ada572
Add manually-runnable benchmarks for runtime profiling ( #2005 )
...
* Split benches into two files
* Implement executor update bench
* Restructure benchmarks
* Unify usages of wrap network in scope
* Remove unused imports
* Fix oom bug
* Remove bounding box impl
2024-09-25 10:52:41 +02:00
Dennis Kobert and Keavon Chambers
8a1089938e
Path Bool library code cleanup ( #2000 )
...
* Remove log statements
* Add feature gates to functions in path.rs
* Fix infinite parsing loop and add new test
* License tweaks
* Remove trailing zero in whole number floats
* Flatten visual-tests directory
* Code review
* Clean up printlines
* Add error handling to path parsing
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-23 12:16:31 +02:00
Dennis Kobert and Keavon Chambers
cd4124a596
Improve node macro and add more diagnostics ( #1999 )
...
* Improve node macro ergonomics
* Fix type error in stub import
* Fix wasm nodes
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-21 19:57:45 +00:00
Dennis Kobert and Keavon Chambers
3eb98c6d6d
Add path-bool library ( #1952 )
...
* Add path-bool library
* Cleanup code
* Cargo format
* Integrate boolean ops into graphite
* Add test for editor crash
* Fix edge sort floating point instability
* Add unit test for red-dress failure
* Backport tests and aux functions
* Use curvature based sorting
* Convert linear cubic splines to line segments
* Deduplicate reversed path segments
* Fix epsilon for empty segments
* Remove parameter based intersection pruning
* Add support for reversed paths
* Add benchmark infrastructure
* Add intersection benchmark
* Add recursion bound
* Implement support for overlapping path segments
* Remove rouge prinln
* Fix sorting for bezier segments with one control point at the start of the segment
* Cleanup log statements
* Directly translate graphite paths to Path segments
* Round data before passing it to path_bool
* Fix flag_faces traversal order
* Add test for white dots in bottom right of painted dreams
* Make rounding configurable
* Update demo artwork to remove manual path modifications
* Convert from path segments to manipulator groups directly
* Remove dead code
* Fix clippy lints
* Replace functions in path segment with methods and add documentation
* Add more documentation
* Close subpaths
* Reorganize files and add README.md
* Add license information
* Code review
* Fix license info
* Adopt new node macro and fix demo artwork
* Close subpaths with Z
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-21 02:06:43 -07:00
Dennis Kobert
32da545a49
Fix blend modes and opacity on raster data ( #1996 )
...
* Apply alpha blending to images when using vello
* Fix bounds for image layer
* Fix rendering for non vello images
2024-09-20 20:42:39 +00:00