* 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`
* 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
* Remove tauri based desktop app
* Allow bzip-1.0.6 license
* Implement basic cef based desktop app
* Cleanup build setup
* Use wait until and execute cef loop more frequently
* Remove custom do browser work event
* Move WinitApp into its own module
* Cleanup event handling
* Cleanup + Scheudule cef message loop work
* Fix cpu overheating on idle: https://xkcd.com/1172/
* Use tracing crate for logging instead of println
* Rebase to main
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* 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
* replace rustybuzz with parley for text layout handling
change text input direction based on text direction
* Code review
* change default character spacing to 0
* add shear to text node
this also adds migration code for documents that don't have shear
* shear migration for text node
- add shear property
- set character spacing to 0
* use old max_width and max_height in text migration if available
* Final code review pass
* Add units to the parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>
* 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
* add `merge_by_distance` node
* remove unneeded features of petgraph
Also re-arrange module slightly since because functions are no longer
async, there was name shadowning with the old arrangement.
* remove region if start or end segment is removed
* remove stuff I ended up not using
* "algos" -> "algorithms"
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>
* start of parser
* ops forgot
* reorder files and work on executer
* start of parser
* ops forgot
* reorder files and work on executer
* Cleanup and fix tests
* Integrate into the editor
* added unit checking at parse time
* fix tests
* fix issues
* fix editor intergration
* update pest grammer to support units
* units should be working, need to set up tests to know
* make unit type store exponants as i32
* remove scale, insted just multiply the literal by the scale
* unit now contains empty unit,remove options
* add more tests and implement almost all unary operators
* add evaluation context and variables
* function calling, api might be refined later
* add constants, change function call to not be as built into the parser
and add tests
* add function definitions
* remove meval
* remove raw-rs from workspace
* add support for numberless units
* fix unit handleing logic, add some "unit" tests(haha)
* make it so units cant do implcit mul with idents
* add bench and better tests
* fix editor api
* remove old test
* change hashmap context to use deref
* change constants to use hashmap instad of function
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Remove raw-rs from workspace
* Add feature blocking to reqwest
* Use release build to run the tests
* Split Raw-rs CI into a seperate workflow
* Fix cargo-deny check for Raw-rs
* Only run the CI if Raw-rs changes
* Enable clippy check for Raw-rs
* Add newline in clippy check
* Fixups
* Use ubuntu-latest
* Remove mold
* Install sccache
* Attempt 2
* Attempt 3
* Add emoji for consistency
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>