Integrate Vello for vector rendering (#1802)

* Start integrating vello into render pipeline

Cache vello render creation

Implement viewport navigation

Close vello path

Add transform parameter to vello render pass

* Fix render node types

* Fix a bunch of bugs in the path translation

* Avoid panic on empty document

* Fix rendering of holes

* Implement image rendering

* Implement graph recompilation afer editor api change

* Implement preferences toggle for using vello as the renderer

* Make surface creation optional

* Feature gate vello usages

* Implement skeleton for radial gradient

* Rename vello preference

* Fix some gradients

* Only update monitor nodes on graph recompile

* Fix warnings + remove dead code

* Update everything except for thumbnails after a node graph evaluation

* Fix missing click targets for Image frames

* Improve perfamance by removing unecessary widget updates

* Fix node graph paning

* Fix thumbnail loading

* Implement proper hash for vector modification

* Fix test and warnings

* Code review

* Fix dep

* Remove warning

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert
2024-07-22 10:56:29 +02:00
committed by GitHub
parent 8e774efe9d
commit ab71d26d84
41 changed files with 807 additions and 760 deletions

View File

@@ -66,9 +66,9 @@ web-sys = "=0.3.69"
winit = "0.29"
url = "2.5"
tokio = { version = "1.29", features = ["fs", "io-std"] }
vello = "0.1"
resvg = "0.39"
usvg = "0.39"
vello = "0.2"
resvg = "0.41"
usvg = "0.41"
rand = { version = "0.8", default-features = false }
rand_chacha = "0.3"
glam = { version = "0.25", default-features = false, features = ["serde"] }
@@ -89,7 +89,7 @@ syn = { version = "2.0", default-features = false, features = [
"full",
"derive",
] }
kurbo = { git = "https://github.com/linebender/kurbo.git", features = [
kurbo = { version = "0.11.0", features = [
"serde",
] }