* Fix pen tool (except overlays)
* Thumbnail of only the layer and not the composite
* Fix occasional transform breakages
* Constrain size of thumbnail
* Insert new layers at the top
* Broken layer tree
* Fix crash when drawing
* Reduce calls to send graph
* Reduce calls to updating properties
* Store cached transforms upon the document
* Fix missing node UI updates
* Fix fill tool and clean up imports and indentation
* Error on overide existing layer
* Fix pen tool (partially)
* Fix some lints
* Changing return of topological_sort to Result and propagating error
* Simplifying "compile()" method, adding "expect()" to tests.
* Removing Result type from "map_gpu()"
* Reverting to assertion and removing unnecessary returns
* Initialize wgpu executor from graphene cli
* Make `graphene-core` `no-std` complient again
* Implemnt image similarity calculation
* Add nan checks
* Make image comparison optional
* Feature gate quantization to reduce the number of warnings
* Adding blank PortfolioMessage to close docs
* Connected new PortfolioMessage to Menu Bar
* Adding functionality to new PortfolioMessage
* Amending outdated tests in color.rs
* Create node (no implementation)
* Resampling - WIP
* use bezier::from_linear_dvec2
* Use from anchors instead of Bezier
* Tidy up anchor collection & subpath creation
* Add Spline from Points node (not implemented)
* Add spline from points node implementation
* Update resampling
* Update minimum density 0.01 -> 1.0
* Add a way to create a custom vector network
* Add spline from points node to spline tool
* Fix crash when no points
* Add anchor method to subpath
* Exact start and end point
* Fix compile errors from rebase
* Fix spline tool
* Rename 'Density' to 'Spacing'
* Fix transforms
* Only close subpaths with >1 anchor
* Fix compile
* Fix compile error
* Fix from points with many subpaths
* Fix new_cubic_spline crash with one point
* Rename to resample as polyline
* Fix div zero
* Fix missing file
* Fix resample
* Rename to resample points
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add Boolean Operations Nodes
Adds OR AND XOR and NOT operators
* Fix operand naming
Inputs to the 'Min' 'Max' 'Equality' and boolean operations nodes were
previously named 'First' and 'Second' and are now called 'Operand A' and
'Operand B'
* Rename Equality to Equals
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Don't include the document node path in the stable node id by default
Make the inclusion of the document path for the stable node id optional
and only enable it for the MonitorNode for now
* Fix tests
* Create ValueMapperNode and use it for brightness/contrast
* move spline code into seperate module
* Add GenerateCurvesNode
* add a `LuminanceMut`-trait
* add `lerp` to `Channel`
* Add frontend code to handle the curves widget's inputs
* Rename spline module to curve
* Make messages in CurveInput pass
* Improve curves widget design and fix sizing issue
* Implement proper bezier handling
* Use bezier_rs's intersections function instead of own cubic root solver
* Debounce CurveInput events and change how debouncer works
the first event issued to the debouncer was unneccessarily delayed.
Instead now the debouncer fires it instantaneously but blocks events
that come in until a timeout was reached.
* Make curve editing more user friendly
* Change code to use project terminology
* sample -> manipulator group or manipulator
* marker -> handle
* Fix small documentation mistake in bezier-rs
* Add find_tvalues_for_x function to bezier-rs
also integrate the function into curves node
* Add tests for find_tvalues_for_x in bezier-rs
* Fix formatting
* Revert BrightnessContrastNode changes
* Frontend cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add bounding box node
Generates a rectangle based on the bounding box of the input vector data
* Remove redundant <>
* Fix formatting
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add Circular Repeat Node
Repeats a given set of Vector Data in a circular pattern a specified
amount of times.
* Remove debug statement from RepeatNode
* Add Input Nodes and additional Math Nodes
* Add add node to node registry
* Update node-graph/gcore/src/ops.rs
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Fix Color Input Node
Wrong input type
* Remove non Parameter variants
* Remove non Parameter variants
* Remove non Parameter variants
* Apply suggestions from code review
* mod to modulo
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Create artboard nodes
* Update node when resizing artboard
* Render clipped artboards
* More stable feature
* Do not render old artboards
* Fix some issues with transforms
* Fix crash when drawing rectangle
* Format
* Allow renaming document from Properties panel
* Adjust artboard label styling
* Fix document graph refresh so artboards show up
* Make "Clear Artboards" coming soon
* Fix displaying an infinite canvas
* Show document name in node graph options bar
* info!() to debug!()
* Fix Properties panel not being cleared when all docs closed
* Remove dead code
* Remove debug logs added in this branch
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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
* WebGPU: Switch from `rgba8unorm` to `bgra8unorm` to support MacOS
This is a known issue in the Dawn bug database: https://bugs.chromium.org/p/chromium/issues/detail?id=1298618
Signed-off-by: Ică Alexandru-Gabriel <alexandru@seyhanlee.com>
* Undo the modification to `shader.wgsl`
Apparently I didn't need to modify the order of the channels in
the shader.
Signed-off-by: Ică Alexandru-Gabriel <alexandru@seyhanlee.com>
* Create asynchronous rust imaginate node
* Make a first imaginate request via rust
* Implement parsing of imaginate API result image
* Stop refresh timer from affecting imaginate progress requests
* Add cargo-about clarification for rustls-webpki
* Delete imaginate.ts and all uses of its functions
* Add imaginate img2img feature
* Fix imaginate random seed button
* Fix imaginate ui inferring non-custom resolutions
* Fix the imaginate progress indicator
* Remove ImaginatePreferences from being compiled into node graph
* Regenerate imaginate only when hitting button
* Add ability to terminate imaginate requests
* Add imaginate server check feature
* Do not compile wasm_bindgen bindings in graphite_editor for tests
* Address some review suggestions
- move wasm futures dependency in editor to the future-executor crate
- guard wasm-bindgen in editor behind a `wasm` feature flag
- dont make seed number input a slider
- remove poll_server_check from process_message function beginning
- guard wasm related code behind `cfg(target_arch = "wasm32")` instead
of `cfg(test)`
- Call the imaginate idle states "Ready" and "Done" instead of "Nothing
to do"
- Call the imaginate uploading state "Uploading Image" instead of
"Uploading Input Image"
- Remove the EvalSyncNode
* Fix imaginate host name being restored between graphite instances
also change the progress status texts a bit.
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add Texture handle type
* Add Texture View to shader inputs
* Implement basic rendering pipeline
* Render first texture using render pipeline
* Fix output color space
* Precompute the rendering pipeline
* Move gpu context creation to editor api
* Port gpu-executor nodes to node registry
* Fix canvas nodes and make code compile for non wasm targets
* Pin wasm-bindgen version
* Disable miri temoporarily for better ci times
* Fix formatting
* Remove unsafe block
* Bump wasm-pack version
* Bump wasm-bindgen version
* Add gpu feature guard for push node
* Make Into node async
* 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