* 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>
* 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>
- Move message handler payload data into structs
- Organize the file structure used by `editor/src/messages/portfolio/document` `/node_graph` and `/graph_operation`
- Make derive attributes use `serde::Serialize, serde::Deserialize` consistently instead of `use serde::{Deserialize, Serialize};` imports
- Various other code cleanup and refactoring
* 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
* Reorganize file structure
* Remove all unsafe code
* Add testcase for debugging ub
* Convert into proper test with fail condition
* General cleanup
* Fix tests
* Add feature guard for deallocation
* Use raw pointer for storing values to avoid violating aliasing rules
* Add comment explaining the disabling of simd128
* Fix brush node
* Fix formatting
* Make node graph execution async
Make node macro generate async node implementations
Start propagating async through the node system
Async checkpoint
Make Any<'i> Send + Sync
Determine node io type using panic node
Fix types for raster_node macro
Finish porting node registry?
Fix lifetime errors
Remove Send + Sync requirements and start making node construction async
Async MVP
Fix tests
Clippy fix
* Fix nodes
* Simplify lifetims for node macro + make node macro more modular
* Reenable more nodes
* Fix pasting images
* Remove http test from brush node
* Fix output type for cache node
* Fix types for let scope
* Fix formatting
* Start implementing GpuExecutor for wgpu
* Implement read_output_buffer function
* Implement extraction node in the compiler
* Generate type annotations during shader compilation
* Start adding node wrapprs for graph execution api
* Wrap more of the api in nodes
* Restructure Pipeline to accept arbitrary shader inputs
* Adapt nodes to new trait definitions
* Start implementing gpu-compiler trait
* Adapt shader generation
* Hardstuck on pointer casts
* Pass nodes as references in gpu code to avoid zsts
* Update gcore to compile on the gpu
* Fix color doc tests
* Impl Node for node refs
* Setup tauri component for graphite editor
Integrate graphite into tauri app
Split interpreted-executor out of graph-craft
* Add gpu execution node
* General Cleanup
* Move the Subpath type to graphene-std
* Add the transform subpath node
* Delete selected nodes
* Inserting node list on right click
* Add several bitmap manipulator nodes
* Convert add node to use f64
* Add posterize node
* Rename names randomly
* Fix naming
* Exposure node
* Fix typo
* Adjust exposure node range
* Comment out vector nodes
* Adjust exposure range again
* Posterise as ints
* Rename input
* Use >= in the to hsl function