* Generate stable node ids
* checkpoint
* Implement borrow tree
* Add eval function on borrow tree
* Refactor Node trait to fix lifetime issues
* Compiler infinite loop
* Impl compose pair
* Transition to double lifetime on trait
* Change node trait to use a generic arg for the input
* Start adapting node_macro
* Migrate more nodes to new macro
* Fix raster tests
* Port vector nodes
* Make Node trait object safe
* Fix FlatMapResultNode
* Translate most of gstd
* Fix DowncastBothNode
* Refactor node trait once again to allow for HRTB for type erased nodes
* Start working on type erased nodes
* Try getting DowncastBothNode to work
* Introduce Upcasting node + work on BorrowTree
* Make enough 'static to get the code to compile
* Transition DynamicExecutor to use borrow tree
* Make Compose Node use HRTB's
* Fix MapResultNode
* Disable blur test
* Add workaround for Composing type erased nodes
* Convert more nodes in the node_registry
* Convert more of the node_registry
* Add update tree fn and hook up to frontend
* Fix blur node
* Implement CacheNode
* Make frontend use graph compiler
* Fix document_node_types type declaration for most nodes
* Remove unused imports
* Move comment down
* Reuse nodes via borrow tree
* Deprecate trait based value in favor of TaggedValue
* Remove unsafe code in buffer creation
* Fix blur node
* Fix stable node id generation
* Fix types for Image adjustment document nodes
* Fix Imaginate Node
* Remove unused imports
* Remove log
* Fix off by one error
* Remove macro generated imaginate node entry
* Create parameterized add node
* Fix test case
* Remove link from layer_panel.rs
* Fix formatting
* Add self hosted runner to ci.yml
* Remove libgtk install
* Use mold as the linker
* Make build logs non verbose
* Fix crash on failure to get GLOBAL_PLATFORM
* Copy the platform enum before calling unwrap_or_default
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* Setup tauri component for graphite editor
Integrate graphite into tauri app
Split interpreted-executor out of graph-craft
* Add gpu execution node
* General Cleanup
* Add Executor abstraction
* Resolve inputs for proto nodes by adding compose nodes
* Add infrastructure for compiling gpu code
* Integrate nodegraph gpu execution into graph-crafter
* Extract graphene core path from env vars
* Make Color struct usable for gpu code
* Implement undo and redo
* Create more save points and hook up menu entry
* Fix operation ordering
* Remove debug statement
* Fix folder changed order
* Don't store overlays in the history chain
* Keep selection
* Enforce cache dirtification
* Turn all shapes into one struct
* Remove working folder
* Remove old shapes
* Major restructuring
* Refactor Ellipse, Rectangle and ShapeTool
* Simplify bounding box calculation for folder
* Fix panic in select tool
* Refactorselect tool
* Refactor Align
* Refactor flipping layers
* Zoom to fit all
* Refactor tools to avoid state keeping
* Refactor more tools to use state that is passed along
* Fix whitespace + change selection box style
* Set viewbox of svg export based on the contents
* Use sideways scrolling
* Add horizontal scroll with shift
* Combine WheelCanvasTranslate messages
* Add zooming to current mouse position
* Fix formatting
* Fix scroll direction
* Rename some Constants
* Export current document when pressing Ctrl+Shift+S
* Use a blob for download
* Add Ctrl + E shortcut, match on lower case
* Don't mount element in DOM
* Polish some keybindings
* Add initialization for MappingEntries
* Implement svg coloring
* Add newline after svg tag
* Add spaces to svg style format
* Fix more svg formatting
* Add space before />
* Remove duplicate whitespace
* Add input manager
* WIP lifetime hell
* Hell yeah, dark lifetime magic
* Replace events with actions in tools
* Fix borrow in GlobalEventHandler
* Fix typo in response-handler
* Distribute dispatch structure
* Add translation from events to actions
* Port default key actions to input_mapper
* Split actions macro
* Add handling for Ambiguous Mouse events
* Fix warnings and clippy lints
* Add actions macro
* WIP rework
* Add AsMessage macro
* Add implementation for derived enums
* Add macro implementation for top level message
* Add #[child] attribute to indicate derivation
* Replace some mentions of Actions and Responses with Message
* It compiles !!!
* Add functionality to some message handlers
* Add document rendering
* ICE
* Rework the previous code while keeping basic functionality
* Reduce parent-top-level macro args to only two
* Add workaround for ICE
* Fix cyclic reference in document.rs
* Make derive_transitive_child a bit more powerful
This addresses the todo that was left,
enabling arbitrary expressions to be passed as the last
parameter of a #[parent] attribute
* Adapt frontend message format
* Make responses use VecDeque
Our responses are a queue so we should use a queue type for them
* Move traits to sensible location
* Are we rectangle yet?
* Simplify, improve & document `derive_discriminant`
* Change `child` to `sub_discriminant`
This only applies to `ToDiscriminant`.
Code using `#[impl_message]` continues to work.
* Add docs for `derive_transitive_child`
* Finish docs and improve macros
The improvements are that impl_message now uses trait
resolution to obtain the parent's discriminant
and that derive_as_message now allows for non-unit
variants (which we don't use but it's nice to have,
just in case)
* Remove logging call
* Move files around and cleanup structure
* Fix proc macro doc tests
* Improve actions_fn!() macro
* Add ellipse tool
* Pass populated actions list to the input mapper
* Add KeyState bitvector
* Merge mouse buttons into "keyboard"
* Add macro for initialization of key mapper table
* Add syntactic sugar for the macro
* Implement mapping function
* Translate the remaining tools
* Fix shape tool
* Add keybindings for line and pen tool
* Fix modifiers
* Cleanup
* Add doc comments for the actions macro
* Fix formatting
* Rename MouseMove to PointerMove
* Add keybinds for tools
* Apply review suggestions
* Rename KeyMappings -> KeyMappingEntries
* Apply review changes
Co-authored-by: T0mstone <realt0mstone@gmail.com>
Co-authored-by: Paul Kupper <kupper.pa@gmail.com>