* Add support structure for new node macro to gcore
* Fix compile issues and code generation
* Implement new node_fn macro
* Implement property translation
* Fix NodeIO type generation
* Start translating math nodes
* Move node implementation to outer scope to allow usage of local imports
* Add expose attribute to allow controlling the parameter exposure
* Add rust analyzer support for #[implementations] attribute
* Migrate logic nodes
* Handle where clause properly
* Implement argument ident pattern preservation
* Implement adjustment layer mapping
* Fix node registry types
* Fix module paths
* Improve demo artwork comptibility
* Improve macro error reporting
* Fix handling of impl node implementations
* Fix nodeio type computation
* Fix opacity node and graph type resolution
* Fix loading of demo artworks
* Fix eslint
* Fix typo in macro test
* Remove node definitions for Adjustment Nodes
* Fix type alias property generation and make adjustments footprint aware
* Convert vector nodes
* Implement path overrides
* Fix stroke node
* Fix painted dreams
* Implement experimental type level specialization
* Fix poisson disk sampling -> all demo artworks should work again
* Port text node + make node macro more robust by implementing lifetime substitution
* Fix vector node tests
* Fix red dress demo + ci
* Fix clippy warnings
* Code review
* Fix primary input issues
* Improve math nodes and audit others
* Set no_properties when no automatic properties are derived
* Port vector generator nodes (could not derive all definitions yet)
* Various QA changes and add min/max/mode_range to number parameters
* Add min and max for f64 and u32
* Convert gpu nodes and clean up unused nodes
* Partially port transform node
* Allow implementations on call arg
* Port path modify node
* Start porting graphic element nodes
* Transform nodes in graphic_element.rs
* Port brush node
* Port nodes in wasm_executior
* Rename node macro
* Fix formatting
* Fix Mandelbrot node
* Formatting
* Fix Load Image and Load Resource nodes, add scope input to node macro
* Remove unnecessary underscores
* Begin attemping to make nodes resolution-aware
* Infer a generic manual compositon type on generic call arg
* Various fixes and work towards merging
* Final changes for merge!
* Fix tests, probably
* More free line removals!
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Start integrating vello into render pipeline
Cache vello render creation
Implement viewport navigation
Close vello path
Add transform parameter to vello render pass
* Fix render node types
* Fix a bunch of bugs in the path translation
* Avoid panic on empty document
* Fix rendering of holes
* Implement image rendering
* Implement graph recompilation afer editor api change
* Implement preferences toggle for using vello as the renderer
* Make surface creation optional
* Feature gate vello usages
* Implement skeleton for radial gradient
* Rename vello preference
* Fix some gradients
* Only update monitor nodes on graph recompile
* Fix warnings + remove dead code
* Update everything except for thumbnails after a node graph evaluation
* Fix missing click targets for Image frames
* Improve perfamance by removing unecessary widget updates
* Fix node graph paning
* Fix thumbnail loading
* Implement proper hash for vector modification
* Fix test and warnings
* Code review
* Fix dep
* Remove warning
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* WIP
* Start deprecating let nodes
* Replace WasmEditorApi network imports with new Scope input
* Add missing unwrap
* Add #[serde(default)] to scope_injections
* Restructure WasmEditorApi definition to be available as a TaggedValue
* Fix text node
* Use stable toolchain in nix shell again
* Code review
* FIx text node and remove all remaining warnings
* Require executor input to be 'static
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fix a lot of clippy warnings
* fix more clippy warnings
* fix yet more clippy warnings
* bump msrv to 1.70.0 to silence warnings
* fix a lot of clippy warnings
* fix more clippy warnings
* fix yet more clippy warnings
* fix a few more warnings
* fix a clippy warning
* remove a commented out line
* silense too many arguments error
* fix more clippy warnings
* prefix underscore to unused vars/functions to fix warnings
* use filter instead of map
* move raw-rs-tests feature flat to module level to fix unused imports warnings
* fix a couple of unused result warnings
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Breadcrumb visualization, nested network consistency, create definitions for Merge internal nodes
* Add index to network inputs, remove imports usage from flatten network
* Replace NodeOutput with NodeInput::Node
* Fully remove imports field, remove unnecessary identity nodes, move Output node to encapsulating network
* Replace previous_outputs with root_node, fix adding artboard/layer to empty network
* Import/Export UI nodes
* Display input/output types dynamically from compiled network
* Add LayerNodeIdentifer::ROOT_PARENT
* Prevent .to_node() on ROOT_PARENT
* Separate NodeGraphMessage and GraphOperationMessage
* General bug fixes with nested networks
* Change layer color, various bug fixes and improvements
* Fix disconnect and set node input for proto nodes and UI export node
* Dashed line to export for previewed node
* Fix deleting proto nodes and nodes that feed into export
* Allow modifications to nodes outside of nested network
* Get network from Node Id parameter
* Change root_node to previous_root_node
* Get TaggedValue from proto node implementation type when disconnecting
* Improve preview functionality and state
* Artboard position and delete children fix
* Name inputs/outputs based on DocumentNodeDefinition or type, fix new artboard/layer insertion
* replace "Link" with "Wire", adjust previewing
* Various bug fixes and improvements
* Modify Sample and Poisson-Disk points, fix incorrect input index and deleting currently viewed node
* Open demo artwork
* Fix opening already upgraded documents and refactor FrontendGraphDataType usages
* Fix deleting within network and other bugs
* Get default node input from compiled network when copying, fix previews, tests, demo artwork
* Code cleanup
* Hide EditorApi and add a comment describing unresolved Import node input types
* Code review
* Replace placeholder ROOT_PARENT NodeId with std::u64::MAX
* Breadcrumb padding
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Remove visible field from LegacyLayer
* Remove LegacyLayer wrapper around LegacyLayerType
* Remove FolderLegacyLayer and LayerLegacyLayer wrappers around their data
* Remove legacy layers
* Refactor Graphite dependency management
* Remove deprecated future executor
* Code review nits
* Remove unused dependencies
* Update dependencies and make compile with all features
* Replace use of future_executor with wasm-bindgen-futures
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* A few minor lints and docs
* Added required packages to compile on Debian-style linux
* Inlined some format args, and removed some `&` in args (they cause about 6% slowdown that compiler cannot inline)
* a few spelling mistakes
* fix fmt
* Make transform node accept footprint as input and pass it along to its input
use f32 instead of f64 and add default to document node definition
* Add cull node
* Fix types for Transform and Cull Nodes
* Add render config struct
* Add Render Node skeleton
* Add Render Node to node_registry
* Make types macro use macro hygiene
* Place Render Node as output
* Start making DownresNode footprint aware
* Correctly calculate footprint in Transform Node
* Add cropping and resizing to downres node
* Fix Output node declaration
* Fix image transform
* Fix Vector Data rendering
* Add concept of ImageRenderMode
* Take base image size into account when calculating the final image size
* Supply viewport transform to the node graph
* Start adapting document graph to resolution agnosticism
* Make document node short circuting not shift the input index
* Apply clippy lints
* Implement skeleton for graphene-cli
* Configure gpu surface on non wasm32 targets
* Create window with full hd size
* Create window using the graphen-cli
* Use window size for surface creation
* Reuse surface configuration
* Reduce window size for native applications to 800x600
* Add compute pipeline test
* Poll wgpu execution externally
* Remove cache node after texture upload
* Add profiling instructions
* Add more debug markers
* Evaluate extract node before flattening the network
* Reenable hue saturation node for compilation
* Make hue saturation node work on the gpu + make f32 default for user inputs
* Add version of test files without caching
* Only dispatch each workgroup not pixel
* ICE
* Add quantization to gpu code
* Fix quantization
* Load images at graph runtime
* Fix quantization calculation
* Feature gate quantization
* Use git version of autoquant
* Add license to `graphene-cli`
* Fix graphene-cli test case
* Ignore tests on non unix platforms
* Fix flattening test