Orson Peters
bb93d243a0
Optimize colorspace conversion ( #1228 )
...
* Enabled cross-crate inlining for release builds.
* Sprinkled inline-enabling directives in color.rs.
* Reduced abstraction in color channel handling for better inlining.
* Alpha should not use gamma.
* Oops, didn't compile.
* Added discrete sRGB <-> linear float conversion.
* Use new float <-> sRGB conversion.
* Improved comments.
* Don't convert fully transparent pixels.
2023-05-25 10:51:40 +02:00
Dennis Kobert
3adcc3031a
Implement Infrastructure to reuse previous frames for brush drawing
...
Implement Infrastructuro to reuse the previous evaluation of the
node graph to blend the new stroke with instead of drawing the
entire trace from scratch.
This does not transition to a blending based approach because that still
caused regressions but allows the brush node to work with input data
natively.
Test Plan:
- Use the brush tool in the editor and check for regressions
- Evaluate the performance
Reviewers: Keavon
Pull Request: https://github.com/GraphiteEditor/Graphite/pull/1190
2023-05-03 13:14:41 +02:00
Dennis Kobert
cef1cf7587
Hide edge aliasing of hard brushes with a blur ( #1189 )
...
* [𝘀𝗽𝗿] initial version
Created using spr 1.3.4
* Formatting
Created using spr 1.3.4
* Rename aa to blur + add comment
Created using spr 1.3.4
2023-04-29 23:35:30 +02:00
Dennis Kobert
1020eb6835
Implement the Brush without relying on a stamp texture
...
Test Plan: Test the BrushNode in the editor
Reviewers: Keavon
Reviewed By: Keavon
Pull Request: https://github.com/GraphiteEditor/Graphite/pull/1184
2023-04-29 01:31:14 +02:00
Keavon Chambers
fa23e9d55b
Update nodes to work with linear color by default ( #1135 )
...
* Update nodes to work with linear color by default
* Make tests work in linear not gamma
2023-04-16 12:20:44 -07:00
Dennis Kobert
37b892a516
Color system based on traits, and conversion to linear color in the graph ( #1123 )
...
* Migrate Nodes to use RasterMut + Samplable
* Add Pixel trait to include serialization
* Implement traits for Color and propagate new generics
* Always convert to linear color when loading images
2023-04-16 02:57:05 +02:00
Dennis Kobert
589ff9a2d3
Implement the Brush tool ( #1099 )
...
* Implement Brush Node
* Add color Input
* Add VectorPointsNode
* Add Erase Node
* Adapt compilation infrastructure to allow non Image Frame inputs
* Remove debug output from TransformNode
* Fix transform calculation
* Fix Blending by making the brush texture use associated alpha
* Code improvements and UX polish
* Rename Opacity to Flow
* Add erase option to brush node + fix freehand tool
* Fix crash
* Revert erase implementation
* Fix flattening id calculation
* Fix some transformation issues
* Fix changing the pivot location
* Fix vector data modify bounds
* Minor fn name cleanup
* Fix some tests
* Fix tests
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
Co-authored-by: hypercube <0hypercube@gmail.com >
2023-04-11 10:35:21 +02:00