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
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
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
Firestar99
be3de511f2
Desktop: Pin CEF version ( #3113 )
...
Fixed CEF cargo dependency so `cargo update` does not update it
2025-08-31 10:22:34 +00:00
Firestar99
ce1cd1706b
Disable proc-macros crate from being tested due to cargo bug ( #3103 )
...
* cargo: remove unused `editor/ron` feature
* cargo: add wgpu-executor as a member, sort list
* cargo: test every crate by default
* cargo: disable testing of `graphite-proc-macros`
2025-08-29 12:25:35 +02:00
Firestar99 and hypercube
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
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
Firestar99 and Keavon Chambers
a199a5fd64
Make CI reject an out-of-date Cargo.lock manifest ( #3101 )
...
* ci: detect out of date Cargo.lock
* update Cargo.lock
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-27 17:51:33 -07: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
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
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
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
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
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
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
Firestar99 and Keavon Chambers
890da6a3c3
Clean up code by using Iterator::collect() when constructing instance tables ( #2918 )
...
* 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
Firestar99
4c75ddf936
Refactor node migration to be less susceptible to forgetting outdated strings ( #2853 )
...
* 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
Firestar99
69ed80b79b
Add ::IDENTITY to node macro to return a ProtoNodeIdentifier that is always a &'static str ( #2842 )
...
* fix warnings on master
* make the `ProtoNodeIdentifier` of a Node be accessible and always a borrowed `&'static str`
* always generate `node_name::identifier()`, even with `skip_impl`
* make `FrontendNodeType` use Cow
* remove broken `DocumentNodeDefinition`s for old GPU nodes
* don't reexport `graphic_element` in it's entirety, only data structures
* adjust everything to use the new `node_name::identifier()`
* fixup imports for wasm
* turn identifier fn into a constant
2025-07-07 16:29:59 -07:00
Firestar99
2b380cec3a
Fix more node migrations that lost their implementations ( #2836 )
...
* fix migration for `SampleGradientNode`
* fix `BrushNode` unadjusted path
* fix `NoisePatternNode` unadjusted path
2025-07-06 02:00:07 -07:00
Firestar99
8a0241f0fa
Fix running tests locally; fix migrations for relocated nodes ( #2805 )
...
* fix `BoundingBox for Raster<GPU>` when `wgpu` feature is disabled
* fix `tinyvec` crate not being `std` by default
* fixup migration for `CoordinateValueNode`
* fixup migration for raster nodes
2025-07-04 02:56:22 -07:00
Firestar99
a182a7347e
Extract gbrush ( #2784 )
2025-07-01 18:38:47 +00:00
Firestar99
602d7e8bd1
Extract graster-nodes ( #2783 )
2025-07-01 18:12:12 +00:00
Firestar99
8e2c206a01
node macro: copy visibility from node function ( #2782 )
2025-07-01 15:29:00 +00:00
Firestar99
59e34836cd
Fix the 'Split Coordinate' node that was broken in an earlier refactor commit ( #2787 )
...
fix "Split Coordinate" node
2025-06-30 06:49:00 +00:00
Firestar99
ecd7999ca7
Extract gmath_nodes from gcore::ops, create mods debug and extract_xy ( #2764 )
2025-06-28 00:04:24 +02:00
Firestar99
9c4ab34a58
Extract gsvg_renderer from gcore, remove gcore/vello feature ( #2760 )
...
Extract `gsvg_renderer` from `gcore`, remove `gcore/vello` feature
2025-06-27 13:47:46 +00:00
Firestar99
ffc6c5532b
Extract gpath_bool from mod gstd::ops path_bool-related nodes ( #2762 )
...
* cargo shear
* Extract `gpath_bool` from `mod gstd::ops` path_bool-related nodes
2025-06-27 13:12:08 +00:00
Firestar99
9cf8d2cd05
Run CI for non master branches ( #2763 )
...
* ci: run CI on PRs not targeting master
* fix warnings when compiling tests
2025-06-27 14:40:54 +02:00
Firestar99
d581319ee8
Prep gcore splitup 2: Vector extension traits ( #2759 )
...
* extension trait for `MergeByDistance::merge_by_distance_*`
* extension trait for `VectorData::append_bezpath`
* extension trait for `HandleId::set_relative_position`
* remove unreferenced rust files
2025-06-27 12:30:12 +02:00
Firestar99
2ddae98bcf
Prep gcore splitup: move various symbols into their own modules ( #2746 )
...
* move `trait AsU32` from `gcore::vector::misc` to `gcore`
* move blending and gradient to their own modules
* fix unused warnings
* move `Quad`, `Rect` and `BBox` to `gcore::math`
* extract `ReferencePoint` and transform nodes from `transform`
* move color-related code to `mod color`
* fix unused warning in test code
* move blending-related nodes and code to `mod blending_nodes`
* move ClickTarget code to `mod vector::click_target`
2025-06-27 09:54:34 +00:00
Firestar99
2d62d01fd4
Make wasm only depend on gstd, not gcore ( #2745 )
...
make `wasm` only depend on `gstd`, not `gcore`
2025-06-23 10:30:41 +00:00
Firestar99
0e8eb481bf
Extract gapplication_io from gcore ( #2742 )
...
move `gcore::application_io` into the new crate `gapplication-io`, remove features `wasm` and `wgpu` from `gcore`
2025-06-23 11:35:14 +02:00
Firestar99
e520c21b66
Remove the serde feature and instead just always require it ( #2737 )
...
workspace: remove feature `serde`, always require it instead
2025-06-21 16:52:47 -07:00
Firestar99
ca5ca863cc
Unify feature dependencies with workspace dependencies ( #2736 )
...
* graph-craft: fix direct wasm build
* graph-craft: fix no serde feature failing to compile
* graph-craft: make wgpu-executor properly optional
* workspace: unify `image` formats in workspace
* workspace: turn most dependencies into workspace deps, no actual changes
* workspace: unify dependency features in workspace dep
2025-06-21 16:26:25 -07:00
Firestar99 and Keavon Chambers
990d5b37cf
Bulk gcore cleanup, replace core and alloc with std ( #2735 )
...
* gcore: replace `core` and `alloc` paths with `std`
* node-graph: remove unnecessary path prefix
* gcore: remove most `#[cfg(target_arch = "spirv")]`, keep some potentially useful ones
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-06-21 23:08:33 +00:00
Firestar99
34dced38ba
Make gcore a std library and remove std, alloc, and more unused features ( #2724 )
...
* gcore: remove features `std`, `alloc`, `gpu` and `reflections`, now always available
* gcore: remove non-working features `kurbo` and `log`
2025-06-19 20:28:17 -07:00
Firestar99
6b69a75391
Bulk rename gcore -> gstd in editor ( #2729 )
...
* remove `gcore` dependency from `editor`
* editor: bulk rename `gcore` -> `gstd`, cargo fmt
2025-06-19 20:28:17 -07:00
Firestar99
13226f7049
Re-export all of gcore in gstd and rename 'Image' node to 'Image Value' ( #2733 )
...
* rename `image` node to `image_value`
* reexport the entirety of `gcore` in `gstd`
2025-06-19 20:28:17 -07:00
Firestar99
68985868fa
Fix profiling CI action failing ( #2734 )
2025-06-19 20:28:17 -07:00
Firestar99
14d90195ad
Remove unused dependencies from the Cargo.toml files via cargo shear ( #2723 )
...
* cargo shear ignore rules
* cargo shear
* cargo shear manual dependency removal
* cargo shear: ignore editor in proc-macros
2025-06-19 20:28:17 -07:00
Firestar99
3489f9ddb1
Bulk remove old code for legacy GPU node implementations ( #2722 )
...
* fix warning in node-macro
* remove crates `gpu-executor`, `gpu-compiler`, `compilation-client` and `compilation-server`
* remove `wgpu-executor::executor`
* .gitignore .idea/
2025-06-19 20:28:17 -07:00
Firestar99
006209c5d0
Put all #[test] in a mod tests ( #2728 )
...
workspace: put all `#[test]` in a `mod tests`
2025-06-19 20:25:58 -07:00