egui: add integration
This commit is contained in:
parent
85b9b7222d
commit
008e8a671a
49 changed files with 4110 additions and 149 deletions
304
Cargo.lock
generated
304
Cargo.lock
generated
|
|
@ -2,6 +2,22 @@
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 4
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ab_glyph"
|
||||||
|
version = "0.2.32"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2"
|
||||||
|
dependencies = [
|
||||||
|
"ab_glyph_rasterizer",
|
||||||
|
"owned_ttf_parser",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ab_glyph_rasterizer"
|
||||||
|
version = "0.1.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "addr2line"
|
name = "addr2line"
|
||||||
version = "0.25.1"
|
version = "0.25.1"
|
||||||
|
|
@ -100,9 +116,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.101"
|
version = "1.0.102"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea"
|
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "arrayref"
|
name = "arrayref"
|
||||||
|
|
@ -148,9 +164,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "2.10.0"
|
version = "2.11.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
|
checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "blake3"
|
name = "blake3"
|
||||||
|
|
@ -178,9 +194,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bumpalo"
|
name = "bumpalo"
|
||||||
version = "3.19.1"
|
version = "3.20.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
|
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytemuck"
|
name = "bytemuck"
|
||||||
|
|
@ -196,9 +212,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.2.55"
|
version = "1.2.56"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
|
checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find-msvc-tools",
|
"find-msvc-tools",
|
||||||
"shlex",
|
"shlex",
|
||||||
|
|
@ -223,9 +239,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono"
|
name = "chrono"
|
||||||
version = "0.4.43"
|
version = "0.4.44"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
|
checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"iana-time-zone",
|
"iana-time-zone",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
|
|
@ -236,9 +252,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap"
|
name = "clap"
|
||||||
version = "4.5.57"
|
version = "4.5.60"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
|
checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap_builder",
|
"clap_builder",
|
||||||
"clap_derive",
|
"clap_derive",
|
||||||
|
|
@ -246,9 +262,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap_builder"
|
name = "clap_builder"
|
||||||
version = "4.5.57"
|
version = "4.5.60"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
|
checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anstream",
|
"anstream",
|
||||||
"anstyle",
|
"anstyle",
|
||||||
|
|
@ -259,9 +275,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap_complete"
|
name = "clap_complete"
|
||||||
version = "4.5.65"
|
version = "4.5.66"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "430b4dc2b5e3861848de79627b2bedc9f3342c7da5173a14eaa5d0f8dc18ae5d"
|
checksum = "c757a3b7e39161a4e56f9365141ada2a6c915a8622c408ab6bb4b5d047371031"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
]
|
]
|
||||||
|
|
@ -275,14 +291,14 @@ dependencies = [
|
||||||
"heck",
|
"heck",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap_lex"
|
name = "clap_lex"
|
||||||
version = "0.7.7"
|
version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
|
checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorchoice"
|
name = "colorchoice"
|
||||||
|
|
@ -337,9 +353,9 @@ checksum = "24efe21bd9a78102d1225f10f0a41d9d5b43f4df7ae8235f39a9c79e4d476c1e"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "deranged"
|
name = "deranged"
|
||||||
version = "0.5.5"
|
version = "0.5.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
|
checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"powerfmt",
|
"powerfmt",
|
||||||
]
|
]
|
||||||
|
|
@ -365,6 +381,54 @@ dependencies = [
|
||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ecolor"
|
||||||
|
version = "0.33.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "71ddb8ac7643d1dba1bb02110e804406dd459a838efcb14011ced10556711a8e"
|
||||||
|
dependencies = [
|
||||||
|
"emath",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "egui"
|
||||||
|
version = "0.33.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6a9b567d356674e9a5121ed3fedfb0a7c31e059fe71f6972b691bcd0bfc284e3"
|
||||||
|
dependencies = [
|
||||||
|
"ahash",
|
||||||
|
"bitflags",
|
||||||
|
"emath",
|
||||||
|
"epaint",
|
||||||
|
"log",
|
||||||
|
"nohash-hasher",
|
||||||
|
"profiling",
|
||||||
|
"smallvec",
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "emath"
|
||||||
|
version = "0.33.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "491bdf728bf25ddd9ad60d4cf1c48588fa82c013a2440b91aa7fc43e34a07c32"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "epaint"
|
||||||
|
version = "0.33.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "009d0dd3c2163823a0abdb899451ecbc78798dec545ee91b43aff1fa790bab62"
|
||||||
|
dependencies = [
|
||||||
|
"ab_glyph",
|
||||||
|
"ahash",
|
||||||
|
"ecolor",
|
||||||
|
"emath",
|
||||||
|
"log",
|
||||||
|
"nohash-hasher",
|
||||||
|
"parking_lot",
|
||||||
|
"profiling",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "equivalent"
|
name = "equivalent"
|
||||||
version = "1.0.2"
|
version = "1.0.2"
|
||||||
|
|
@ -426,38 +490,38 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-core"
|
name = "futures-core"
|
||||||
version = "0.3.31"
|
version = "0.3.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
|
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-io"
|
name = "futures-io"
|
||||||
version = "0.3.31"
|
version = "0.3.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
|
checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-macro"
|
name = "futures-macro"
|
||||||
version = "0.3.31"
|
version = "0.3.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
|
checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-task"
|
name = "futures-task"
|
||||||
version = "0.3.31"
|
version = "0.3.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
|
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-util"
|
name = "futures-util"
|
||||||
version = "0.3.31"
|
version = "0.3.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
|
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-io",
|
"futures-io",
|
||||||
|
|
@ -465,7 +529,6 @@ dependencies = [
|
||||||
"futures-task",
|
"futures-task",
|
||||||
"memchr",
|
"memchr",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"pin-utils",
|
|
||||||
"slab",
|
"slab",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -488,19 +551,19 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"r-efi",
|
"r-efi 5.3.0",
|
||||||
"wasip2",
|
"wasip2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.4.1"
|
version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
|
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"r-efi",
|
"r-efi 6.0.0",
|
||||||
"rand_core 0.10.0",
|
"rand_core 0.10.0",
|
||||||
"wasip2",
|
"wasip2",
|
||||||
"wasip3",
|
"wasip3",
|
||||||
|
|
@ -658,6 +721,7 @@ dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"clap_complete",
|
"clap_complete",
|
||||||
"dirs",
|
"dirs",
|
||||||
|
"egui",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"gpu-alloc",
|
"gpu-alloc",
|
||||||
"gpu-alloc-types",
|
"gpu-alloc-types",
|
||||||
|
|
@ -734,9 +798,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "js-sys"
|
name = "js-sys"
|
||||||
version = "0.3.85"
|
version = "0.3.91"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
|
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
|
|
@ -773,7 +837,7 @@ checksum = "28067e7361c0069c3753795d131653f9ea5333aeb35a3855fb2de66447c48ac8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -790,9 +854,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.181"
|
version = "0.2.183"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5"
|
checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libloading"
|
name = "libloading"
|
||||||
|
|
@ -806,19 +870,18 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libredox"
|
name = "libredox"
|
||||||
version = "0.1.12"
|
version = "0.1.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
|
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linearize"
|
name = "linearize"
|
||||||
version = "0.1.5"
|
version = "0.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "53d5b35550da9461fb8d3acf71c9925afae570bfc45a11857b55138d25c8604d"
|
checksum = "f6e1430c89633736996fd763822abd252e395dbccaaee33be601b4d59678a93e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"linearize-derive",
|
"linearize-derive",
|
||||||
|
|
@ -835,14 +898,14 @@ checksum = "f657db73fbcad5341c5991ddee6c464d4bfd521575c0dc1a47913e0f434defeb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linux-raw-sys"
|
name = "linux-raw-sys"
|
||||||
version = "0.11.0"
|
version = "0.12.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
|
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lock_api"
|
name = "lock_api"
|
||||||
|
|
@ -875,6 +938,12 @@ dependencies = [
|
||||||
"simd-adler32",
|
"simd-adler32",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nohash-hasher"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-conv"
|
name = "num-conv"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
|
@ -889,7 +958,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -943,6 +1012,15 @@ version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "owned_ttf_parser"
|
||||||
|
version = "0.25.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b"
|
||||||
|
dependencies = [
|
||||||
|
"ttf-parser",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.12.5"
|
version = "0.12.5"
|
||||||
|
|
@ -997,7 +1075,7 @@ dependencies = [
|
||||||
"phf_shared",
|
"phf_shared",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1011,35 +1089,29 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project"
|
name = "pin-project"
|
||||||
version = "1.1.10"
|
version = "1.1.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a"
|
checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pin-project-internal",
|
"pin-project-internal",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project-internal"
|
name = "pin-project-internal"
|
||||||
version = "1.1.10"
|
version = "1.1.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
|
checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project-lite"
|
name = "pin-project-lite"
|
||||||
version = "0.2.16"
|
version = "0.2.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
|
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pin-utils"
|
|
||||||
version = "0.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pkg-config"
|
name = "pkg-config"
|
||||||
|
|
@ -1049,9 +1121,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "png"
|
name = "png"
|
||||||
version = "0.18.0"
|
version = "0.18.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0"
|
checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"crc32fast",
|
"crc32fast",
|
||||||
|
|
@ -1073,7 +1145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1086,19 +1158,25 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-xml"
|
name = "profiling"
|
||||||
version = "0.39.0"
|
version = "1.0.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f2e3bf4aa9d243beeb01a7b3bc30b77cfe2c44e24ec02d751a7104a53c2c49a1"
|
checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quick-xml"
|
||||||
|
version = "0.39.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.44"
|
version = "1.0.45"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
|
|
@ -1109,6 +1187,12 @@ version = "5.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "r-efi"
|
||||||
|
version = "6.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
version = "0.8.5"
|
version = "0.8.5"
|
||||||
|
|
@ -1134,7 +1218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
|
checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chacha20",
|
"chacha20",
|
||||||
"getrandom 0.4.1",
|
"getrandom 0.4.2",
|
||||||
"rand_core 0.10.0",
|
"rand_core 0.10.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1201,9 +1285,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex-syntax"
|
name = "regex-syntax"
|
||||||
version = "0.8.9"
|
version = "0.8.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
|
checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "repc"
|
name = "repc"
|
||||||
|
|
@ -1234,9 +1318,9 @@ checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustix"
|
name = "rustix"
|
||||||
version = "1.1.3"
|
version = "1.1.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
|
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"errno",
|
"errno",
|
||||||
|
|
@ -1314,7 +1398,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1410,9 +1494,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.114"
|
version = "2.0.117"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
|
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|
@ -1455,7 +1539,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1538,6 +1622,12 @@ dependencies = [
|
||||||
"windows-targets 0.52.6",
|
"windows-targets 0.52.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ttf-parser"
|
||||||
|
version = "0.25.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uapi"
|
name = "uapi"
|
||||||
version = "0.2.13"
|
version = "0.2.13"
|
||||||
|
|
@ -1566,9 +1656,15 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-ident"
|
name = "unicode-ident"
|
||||||
version = "1.0.23"
|
version = "1.0.24"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e"
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-segmentation"
|
||||||
|
version = "1.12.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-width"
|
name = "unicode-width"
|
||||||
|
|
@ -1636,9 +1732,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen"
|
name = "wasm-bindgen"
|
||||||
version = "0.2.108"
|
version = "0.2.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
|
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
|
@ -1649,9 +1745,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro"
|
name = "wasm-bindgen-macro"
|
||||||
version = "0.2.108"
|
version = "0.2.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
|
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"wasm-bindgen-macro-support",
|
"wasm-bindgen-macro-support",
|
||||||
|
|
@ -1659,22 +1755,22 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro-support"
|
name = "wasm-bindgen-macro-support"
|
||||||
version = "0.2.108"
|
version = "0.2.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
|
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-shared"
|
name = "wasm-bindgen-shared"
|
||||||
version = "0.2.108"
|
version = "0.2.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
|
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
@ -1743,7 +1839,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1754,7 +1850,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1967,7 +2063,7 @@ dependencies = [
|
||||||
"heck",
|
"heck",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"prettyplease",
|
"prettyplease",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
"wasm-metadata",
|
"wasm-metadata",
|
||||||
"wit-bindgen-core",
|
"wit-bindgen-core",
|
||||||
"wit-component",
|
"wit-component",
|
||||||
|
|
@ -1983,7 +2079,7 @@ dependencies = [
|
||||||
"prettyplease",
|
"prettyplease",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
"wit-bindgen-core",
|
"wit-bindgen-core",
|
||||||
"wit-bindgen-rust",
|
"wit-bindgen-rust",
|
||||||
]
|
]
|
||||||
|
|
@ -2055,26 +2151,26 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy"
|
name = "zerocopy"
|
||||||
version = "0.8.39"
|
version = "0.8.42"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a"
|
checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zerocopy-derive",
|
"zerocopy-derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy-derive"
|
name = "zerocopy-derive"
|
||||||
version = "0.8.39"
|
version = "0.8.42"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517"
|
checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.114",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zmij"
|
name = "zmij"
|
||||||
version = "1.0.20"
|
version = "1.0.21"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7"
|
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
||||||
|
|
|
||||||
33
Cargo.toml
33
Cargo.toml
|
|
@ -69,6 +69,7 @@ opera = "1.0.1"
|
||||||
with_builtin_macros = "0.1.0"
|
with_builtin_macros = "0.1.0"
|
||||||
blake3 = "1.8.2"
|
blake3 = "1.8.2"
|
||||||
run-on-drop = "1.0.0"
|
run-on-drop = "1.0.0"
|
||||||
|
egui = { version = "0.33.3", default-features = false }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
repc = "0.1.1"
|
repc = "0.1.1"
|
||||||
|
|
@ -87,6 +88,38 @@ opt-level = 3
|
||||||
[profile.dev.package."smallvec"]
|
[profile.dev.package."smallvec"]
|
||||||
opt-level = 3
|
opt-level = 3
|
||||||
|
|
||||||
|
[profile.dev.package."egui"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."emath"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."epaint"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."ab_glyph"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."ab_glyph_rasterizer"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."owned_ttf_parser"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."ttf-parser"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
|
[profile.dev.package."ecolor"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = "line-tables-only"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
rc_tracking = []
|
rc_tracking = []
|
||||||
it = []
|
it = []
|
||||||
|
|
|
||||||
|
|
@ -8,23 +8,31 @@ pub struct Tree {
|
||||||
pub shaders: &'static [&'static str],
|
pub shaders: &'static [&'static str],
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const TREES: &[Tree] = &[Tree {
|
pub const TREES: &[Tree] = &[
|
||||||
root: "src/gfx_apis/vulkan/shaders",
|
Tree {
|
||||||
hash: "src/gfx_apis/vulkan/shaders_hash.txt",
|
root: "src/gfx_apis/vulkan/shaders",
|
||||||
bin: "src/gfx_apis/vulkan/shaders_bin",
|
hash: "src/gfx_apis/vulkan/shaders_hash.txt",
|
||||||
shaders: &[
|
bin: "src/gfx_apis/vulkan/shaders_bin",
|
||||||
"fill.frag",
|
shaders: &[
|
||||||
"fill.vert",
|
"fill.frag",
|
||||||
"tex.vert",
|
"fill.vert",
|
||||||
"tex.frag",
|
"tex.vert",
|
||||||
"out.vert",
|
"tex.frag",
|
||||||
"out.frag",
|
"out.vert",
|
||||||
"legacy/fill.frag",
|
"out.frag",
|
||||||
"legacy/fill.vert",
|
"legacy/fill.frag",
|
||||||
"legacy/tex.vert",
|
"legacy/fill.vert",
|
||||||
"legacy/tex.frag",
|
"legacy/tex.vert",
|
||||||
],
|
"legacy/tex.frag",
|
||||||
}];
|
],
|
||||||
|
},
|
||||||
|
Tree {
|
||||||
|
root: "src/egui_adapter/shaders",
|
||||||
|
hash: "src/egui_adapter/shaders_hash.txt",
|
||||||
|
bin: "src/egui_adapter/shaders_bin",
|
||||||
|
shaders: &["shader.vert", "shader.frag"],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
fn calculate_hash(tree: &Tree) -> anyhow::Result<String> {
|
fn calculate_hash(tree: &Tree) -> anyhow::Result<String> {
|
||||||
let dir = WalkDir::new(tree.root);
|
let dir = WalkDir::new(tree.root);
|
||||||
|
|
|
||||||
|
|
@ -1035,6 +1035,13 @@ impl ConfigClient {
|
||||||
position
|
position
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_egui_fonts(&self, proportional: Option<Vec<&str>>, monospace: Option<Vec<&str>>) {
|
||||||
|
self.send(&ClientMessage::SetEguiFonts {
|
||||||
|
proportional,
|
||||||
|
monospace,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_middle_click_paste_enabled(&self, enabled: bool) {
|
pub fn set_middle_click_paste_enabled(&self, enabled: bool) {
|
||||||
self.send(&ClientMessage::SetMiddleClickPasteEnabled { enabled });
|
self.send(&ClientMessage::SetMiddleClickPasteEnabled { enabled });
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -841,6 +841,10 @@ pub enum ClientMessage<'a> {
|
||||||
fds: Vec<(i32, i32)>,
|
fds: Vec<(i32, i32)>,
|
||||||
tag: Option<&'a str>,
|
tag: Option<&'a str>,
|
||||||
},
|
},
|
||||||
|
SetEguiFonts {
|
||||||
|
proportional: Option<Vec<&'a str>>,
|
||||||
|
monospace: Option<Vec<&'a str>>,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,20 @@ pub fn get_bar_position() -> BarPosition {
|
||||||
get!(BarPosition::Top).get_bar_position()
|
get!(BarPosition::Top).get_bar_position()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sets the proportional fonts used by egui windows.
|
||||||
|
///
|
||||||
|
/// The default is `["sans-serif", "Noto Sans", "Noto Color Emoji"]`.
|
||||||
|
pub fn set_egui_proportional_fonts<'a>(fonts: impl IntoIterator<Item = &'a str>) {
|
||||||
|
get!().set_egui_fonts(Some(fonts.into_iter().collect()), None);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the monospace fonts used by egui windows.
|
||||||
|
///
|
||||||
|
/// The default is `["monospace", "Noto Sans Mono", "Noto Color Emoji"]`.
|
||||||
|
pub fn set_egui_monospace_fonts<'a>(fonts: impl IntoIterator<Item = &'a str>) {
|
||||||
|
get!().set_egui_fonts(None, Some(fonts.into_iter().collect()));
|
||||||
|
}
|
||||||
|
|
||||||
/// Elements of the compositor whose color can be changed.
|
/// Elements of the compositor whose color can be changed.
|
||||||
pub mod colors {
|
pub mod colors {
|
||||||
use {
|
use {
|
||||||
|
|
|
||||||
|
|
@ -392,6 +392,7 @@ fn start_compositor2(
|
||||||
eventfd_cache,
|
eventfd_cache,
|
||||||
lazy_event_sources: Default::default(),
|
lazy_event_sources: Default::default(),
|
||||||
bo_drop_queue: Rc::new(ObjectDropQueue::new(&ring)),
|
bo_drop_queue: Rc::new(ObjectDropQueue::new(&ring)),
|
||||||
|
egg_state: Default::default(),
|
||||||
});
|
});
|
||||||
state.tracker.register(ClientId::from_raw(0));
|
state.tracker.register(ClientId::from_raw(0));
|
||||||
create_dummy_output(&state);
|
create_dummy_output(&state);
|
||||||
|
|
|
||||||
|
|
@ -1807,6 +1807,10 @@ impl ConfigProxyHandler {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_set_egui_fonts(&self, proportional: Option<Vec<&str>>, monospace: Option<Vec<&str>>) {
|
||||||
|
self.state.set_egui_fonts(proportional, monospace);
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_set_log_level(&self, level: ConfigLogLevel) {
|
fn handle_set_log_level(&self, level: ConfigLogLevel) {
|
||||||
self.state.set_log_level(level.into());
|
self.state.set_log_level(level.into());
|
||||||
}
|
}
|
||||||
|
|
@ -3311,6 +3315,10 @@ impl ConfigProxyHandler {
|
||||||
fds,
|
fds,
|
||||||
tag,
|
tag,
|
||||||
} => self.handle_run(prog, args, env, fds, tag).wrn("run")?,
|
} => self.handle_run(prog, args, env, fds, tag).wrn("run")?,
|
||||||
|
ClientMessage::SetEguiFonts {
|
||||||
|
proportional,
|
||||||
|
monospace,
|
||||||
|
} => self.handle_set_egui_fonts(proportional, monospace),
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
src/egui_adapter.rs
Normal file
3
src/egui_adapter.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
pub mod egui_oklch;
|
||||||
|
pub mod egui_platform;
|
||||||
|
mod egui_vulkan;
|
||||||
37
src/egui_adapter/egui_oklch.rs
Normal file
37
src/egui_adapter/egui_oklch.rs
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
use {
|
||||||
|
crate::{
|
||||||
|
cmm::cmm_eotf::Eotf,
|
||||||
|
theme::{Color, Oklab, Oklch},
|
||||||
|
},
|
||||||
|
egui::{Color32, Rgba},
|
||||||
|
};
|
||||||
|
|
||||||
|
#[expect(dead_code)]
|
||||||
|
pub trait Color32Ext {
|
||||||
|
fn to_oklab(self) -> Oklab;
|
||||||
|
fn to_oklch(self) -> Oklch;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Color32Ext for Color32 {
|
||||||
|
fn to_oklab(self) -> Oklab {
|
||||||
|
let [r, g, b, a] = self.to_array();
|
||||||
|
Color::from_srgba_premultiplied(r, g, b, a).srgb_to_oklab()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn to_oklch(self) -> Oklch {
|
||||||
|
self.to_oklab().to_oklch()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<Color32> for Oklch {
|
||||||
|
fn into(self) -> Color32 {
|
||||||
|
self.to_oklab().into()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<Color32> for Oklab {
|
||||||
|
fn into(self) -> Color32 {
|
||||||
|
let [r, g, b, a] = self.to_srgb().to_array(Eotf::Linear);
|
||||||
|
Rgba::from_rgba_premultiplied(r, g, b, a).into()
|
||||||
|
}
|
||||||
|
}
|
||||||
1456
src/egui_adapter/egui_platform.rs
Normal file
1456
src/egui_adapter/egui_platform.rs
Normal file
File diff suppressed because it is too large
Load diff
2055
src/egui_adapter/egui_vulkan.rs
Normal file
2055
src/egui_adapter/egui_vulkan.rs
Normal file
File diff suppressed because it is too large
Load diff
BIN
src/egui_adapter/icons.ttf
Normal file
BIN
src/egui_adapter/icons.ttf
Normal file
Binary file not shown.
13
src/egui_adapter/shaders/shader.frag
Normal file
13
src/egui_adapter/shaders/shader.frag
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(location = 0) in vec4 color;
|
||||||
|
layout(location = 1) in vec2 pos;
|
||||||
|
|
||||||
|
layout(binding = 0, set = 0) uniform sampler2D tex;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 res;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 src = texture(tex, pos);
|
||||||
|
res = color * src;
|
||||||
|
}
|
||||||
19
src/egui_adapter/shaders/shader.vert
Normal file
19
src/egui_adapter/shaders/shader.vert
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#version 450
|
||||||
|
|
||||||
|
layout(location = 0) in vec2 if_pos;
|
||||||
|
layout(location = 1) in vec2 it_pos;
|
||||||
|
layout(location = 2) in vec4 i_color;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 o_color;
|
||||||
|
layout(location = 1) out vec2 ot_pos;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
o_color = i_color;
|
||||||
|
o_color.rgb = mix(
|
||||||
|
o_color.rgb / vec3(12.92),
|
||||||
|
pow((o_color.rgb + vec3(0.055)) / vec3(1.055), vec3(2.4)),
|
||||||
|
greaterThan(o_color.rgb, vec3(0.04045))
|
||||||
|
);
|
||||||
|
ot_pos = it_pos;
|
||||||
|
gl_Position = vec4(if_pos.x, if_pos.y, 0.0, 1.0);
|
||||||
|
}
|
||||||
BIN
src/egui_adapter/shaders_bin/shader.frag.spv
Normal file
BIN
src/egui_adapter/shaders_bin/shader.frag.spv
Normal file
Binary file not shown.
BIN
src/egui_adapter/shaders_bin/shader.vert.spv
Normal file
BIN
src/egui_adapter/shaders_bin/shader.vert.spv
Normal file
Binary file not shown.
2
src/egui_adapter/shaders_hash.txt
Normal file
2
src/egui_adapter/shaders_hash.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
7eb8fae39ae513bc4f6973c12227aa4aa43734bdf34c90e1b3b69294ad98db87 src/egui_adapter/shaders/shader.frag
|
||||||
|
501f4d0c5c5f10a371659b89f12d87abb03e5b57a31dbae5f3c6ca5726e4db01 src/egui_adapter/shaders/shader.vert
|
||||||
|
|
@ -34,14 +34,12 @@ pub enum FontconfigError {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[expect(dead_code)]
|
|
||||||
pub struct Font {
|
pub struct Font {
|
||||||
pub fullname: String,
|
pub fullname: String,
|
||||||
pub file: PathBuf,
|
pub file: PathBuf,
|
||||||
pub index: Option<i32>,
|
pub index: Option<i32>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn match_font(family: &str) -> Result<Font, FontconfigError> {
|
pub fn match_font(family: &str) -> Result<Font, FontconfigError> {
|
||||||
thread_local! {
|
thread_local! {
|
||||||
static CONFIG: *mut FcConfig = FcConfigGetCurrent();
|
static CONFIG: *mut FcConfig = FcConfigGetCurrent();
|
||||||
|
|
|
||||||
|
|
@ -256,7 +256,7 @@ pub struct Globals {
|
||||||
removed: CopyHashMap<GlobalName, Rc<dyn Global>>,
|
removed: CopyHashMap<GlobalName, Rc<dyn Global>>,
|
||||||
pub outputs: CopyHashMap<GlobalName, Rc<WlOutputGlobal>>,
|
pub outputs: CopyHashMap<GlobalName, Rc<WlOutputGlobal>>,
|
||||||
pub seats: CopyHashMap<GlobalName, Rc<WlSeatGlobal>>,
|
pub seats: CopyHashMap<GlobalName, Rc<WlSeatGlobal>>,
|
||||||
singletons: StaticMap<Singleton, GlobalName>,
|
pub singletons: StaticMap<Singleton, GlobalName>,
|
||||||
exposed: StaticMap<Singleton, Cell<bool>>,
|
exposed: StaticMap<Singleton, Cell<bool>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,9 @@ const MISSING_CAPABILITY: u32 = 0;
|
||||||
|
|
||||||
pub const BTN_LEFT: u32 = 0x110;
|
pub const BTN_LEFT: u32 = 0x110;
|
||||||
pub const BTN_RIGHT: u32 = 0x111;
|
pub const BTN_RIGHT: u32 = 0x111;
|
||||||
|
pub const BTN_MIDDLE: u32 = 0x112;
|
||||||
|
pub const BTN_SIDE: u32 = 0x113;
|
||||||
|
pub const BTN_EXTRA: u32 = 0x114;
|
||||||
|
|
||||||
pub const SEAT_NAME_SINCE: Version = Version(2);
|
pub const SEAT_NAME_SINCE: Version = Version(2);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ mod damage;
|
||||||
mod dbus;
|
mod dbus;
|
||||||
mod drm_feedback;
|
mod drm_feedback;
|
||||||
mod edid;
|
mod edid;
|
||||||
|
mod egui_adapter;
|
||||||
mod ei;
|
mod ei;
|
||||||
mod eventfd_cache;
|
mod eventfd_cache;
|
||||||
mod fixed;
|
mod fixed;
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,15 @@ pub struct AcceptorMetadata {
|
||||||
pub tag: Option<String>,
|
pub tag: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl AcceptorMetadata {
|
||||||
|
pub fn secure() -> Self {
|
||||||
|
Self {
|
||||||
|
secure: true,
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl SecurityContextAcceptors {
|
impl SecurityContextAcceptors {
|
||||||
pub fn clear(&self) {
|
pub fn clear(&self) {
|
||||||
for acceptor in self.acceptors.lock().drain_values() {
|
for acceptor in self.acceptors.lock().drain_values() {
|
||||||
|
|
|
||||||
17
src/state.rs
17
src/state.rs
|
|
@ -24,6 +24,7 @@ use {
|
||||||
damage::DamageVisualizer,
|
damage::DamageVisualizer,
|
||||||
dbus::Dbus,
|
dbus::Dbus,
|
||||||
drm_feedback::{DrmFeedback, DrmFeedbackIds},
|
drm_feedback::{DrmFeedback, DrmFeedbackIds},
|
||||||
|
egui_adapter::egui_platform::EggState,
|
||||||
ei::{
|
ei::{
|
||||||
ei_acceptor::EiAcceptor,
|
ei_acceptor::EiAcceptor,
|
||||||
ei_client::{EiClient, EiClients},
|
ei_client::{EiClient, EiClients},
|
||||||
|
|
@ -226,7 +227,7 @@ pub struct State {
|
||||||
pub activation_tokens: CopyHashMap<ActivationToken, ()>,
|
pub activation_tokens: CopyHashMap<ActivationToken, ()>,
|
||||||
pub toplevel_lists:
|
pub toplevel_lists:
|
||||||
CopyHashMap<(ClientId, ExtForeignToplevelListV1Id), Rc<ExtForeignToplevelListV1>>,
|
CopyHashMap<(ClientId, ExtForeignToplevelListV1Id), Rc<ExtForeignToplevelListV1>>,
|
||||||
pub dma_buf_ids: DmaBufIds,
|
pub dma_buf_ids: Rc<DmaBufIds>,
|
||||||
pub drm_feedback_ids: DrmFeedbackIds,
|
pub drm_feedback_ids: DrmFeedbackIds,
|
||||||
pub direct_scanout_enabled: Cell<bool>,
|
pub direct_scanout_enabled: Cell<bool>,
|
||||||
pub persistent_output_states: CopyHashMap<Rc<OutputId>, Rc<PersistentOutputState>>,
|
pub persistent_output_states: CopyHashMap<Rc<OutputId>, Rc<PersistentOutputState>>,
|
||||||
|
|
@ -295,6 +296,7 @@ pub struct State {
|
||||||
pub eventfd_cache: Rc<EventfdCache>,
|
pub eventfd_cache: Rc<EventfdCache>,
|
||||||
pub lazy_event_sources: Rc<LazyEventSources>,
|
pub lazy_event_sources: Rc<LazyEventSources>,
|
||||||
pub bo_drop_queue: Rc<ObjectDropQueue<Rc<dyn BufferObject>>>,
|
pub bo_drop_queue: Rc<ObjectDropQueue<Rc<dyn BufferObject>>>,
|
||||||
|
pub egg_state: EggState,
|
||||||
}
|
}
|
||||||
|
|
||||||
// impl Drop for State {
|
// impl Drop for State {
|
||||||
|
|
@ -645,6 +647,7 @@ impl State {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_render_ctx(&self, ctx: Option<Rc<dyn GfxContext>>) {
|
pub fn set_render_ctx(&self, ctx: Option<Rc<dyn GfxContext>>) {
|
||||||
|
self.egg_state.clear();
|
||||||
self.explicit_sync_supported.set(false);
|
self.explicit_sync_supported.set(false);
|
||||||
self.render_ctx.set(ctx.clone());
|
self.render_ctx.set(ctx.clone());
|
||||||
self.render_ctx_version.fetch_add(1);
|
self.render_ctx_version.fetch_add(1);
|
||||||
|
|
@ -1158,6 +1161,7 @@ impl State {
|
||||||
self.xdg_surface_configure_events.clear();
|
self.xdg_surface_configure_events.clear();
|
||||||
self.lazy_event_sources.clear();
|
self.lazy_event_sources.clear();
|
||||||
self.bo_drop_queue.kill();
|
self.bo_drop_queue.kill();
|
||||||
|
self.egg_state.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_toplevel_id(&self, id: ToplevelIdentifier) {
|
pub fn remove_toplevel_id(&self, id: ToplevelIdentifier) {
|
||||||
|
|
@ -1876,6 +1880,7 @@ impl State {
|
||||||
theme.font.set(self.theme.default_font.clone());
|
theme.font.set(self.theme.default_font.clone());
|
||||||
theme.bar_font.set(None);
|
theme.bar_font.set(None);
|
||||||
theme.title_font.set(None);
|
theme.title_font.set(None);
|
||||||
|
self.egg_state.reset_fonts();
|
||||||
self.fonts_changed();
|
self.fonts_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1896,6 +1901,16 @@ impl State {
|
||||||
self.fonts_changed();
|
self.fonts_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_egui_fonts(&self, proportional: Option<Vec<&str>>, monospace: Option<Vec<&str>>) {
|
||||||
|
if let Some(fonts) = &proportional {
|
||||||
|
self.egg_state.set_proportional_fonts(fonts);
|
||||||
|
}
|
||||||
|
if let Some(fonts) = &monospace {
|
||||||
|
self.egg_state.set_monospace_fonts(fonts);
|
||||||
|
}
|
||||||
|
self.fonts_changed();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_bar_position(&self, p: BarPosition) {
|
pub fn set_bar_position(&self, p: BarPosition) {
|
||||||
self.theme.bar_position.set(p);
|
self.theme.bar_position.set(p);
|
||||||
self.spaces_changed();
|
self.spaces_changed();
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ impl<T> ObjectDropQueue<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn push(self: &Rc<Self>, fd: &Rc<OwnedFd>, t: T)
|
pub fn push(self: &Rc<Self>, fd: &Rc<OwnedFd>, t: T)
|
||||||
where
|
where
|
||||||
T: 'static,
|
T: 'static,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ pub fn pipe() -> Result<Pipe<OwnedFd, OwnedFd>, OsError> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<L, R> Pipe<L, R> {
|
impl<L, R> Pipe<L, R> {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn map_read<Lprime>(self, map: impl FnOnce(L) -> Lprime) -> Pipe<Lprime, R> {
|
pub fn map_read<Lprime>(self, map: impl FnOnce(L) -> Lprime) -> Pipe<Lprime, R> {
|
||||||
Pipe {
|
Pipe {
|
||||||
read: map(self.read),
|
read: map(self.read),
|
||||||
|
|
@ -22,7 +21,6 @@ impl<L, R> Pipe<L, R> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn map_write<Rprime>(self, map: impl FnOnce(R) -> Rprime) -> Pipe<L, Rprime> {
|
pub fn map_write<Rprime>(self, map: impl FnOnce(R) -> Rprime) -> Pipe<L, Rprime> {
|
||||||
Pipe {
|
Pipe {
|
||||||
read: self.read,
|
read: self.read,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
use {
|
use {
|
||||||
crate::{
|
crate::{
|
||||||
format::Format,
|
format::Format,
|
||||||
|
gfx_api::SyncFile,
|
||||||
utils::{compat::IoctlNumber, oserror::OsError},
|
utils::{compat::IoctlNumber, oserror::OsError},
|
||||||
video::{LINEAR_MODIFIER, Modifier},
|
video::{
|
||||||
|
LINEAR_MODIFIER, Modifier,
|
||||||
|
drm::{DrmError, syncobj::merge_sync_files},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
arrayvec::ArrayVec,
|
arrayvec::ArrayVec,
|
||||||
std::{cell::OnceCell, rc::Rc, sync::OnceLock},
|
std::{cell::OnceCell, rc::Rc, sync::OnceLock},
|
||||||
|
|
@ -113,6 +117,22 @@ impl DmaBuf {
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn export_sync_file(&self, flags: u32) -> Result<Option<SyncFile>, DrmError> {
|
||||||
|
let mut sf = PlaneVec::new();
|
||||||
|
for plane in &self.planes {
|
||||||
|
sf.push(
|
||||||
|
dma_buf_export_sync_file(&plane.fd, flags)
|
||||||
|
.map(Rc::new)
|
||||||
|
.map(SyncFile)
|
||||||
|
.map_err(DrmError::ExportSyncFile)?,
|
||||||
|
);
|
||||||
|
if self.is_one_file() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
merge_sync_files(sf.iter())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const DMA_BUF_BASE: u64 = b'b' as _;
|
const DMA_BUF_BASE: u64 = b'b' as _;
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,6 @@ impl UsrJayCompositor {
|
||||||
obj
|
obj
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_sync_file_surface(&self, surface: &UsrWlSurface) -> Rc<UsrJaySyncFileSurface> {
|
pub fn get_sync_file_surface(&self, surface: &UsrWlSurface) -> Rc<UsrJaySyncFileSurface> {
|
||||||
let obj = Rc::new(UsrJaySyncFileSurface {
|
let obj = Rc::new(UsrJaySyncFileSurface {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ pub struct UsrJaySyncFileSurface {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrJaySyncFileSurface {
|
impl UsrJaySyncFileSurface {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_acquire(&self, sf: Option<&FdSync>) {
|
pub fn set_acquire(&self, sf: Option<&FdSync>) {
|
||||||
match sf.and_then(|s| s.get_sync_file()) {
|
match sf.and_then(|s| s.get_sync_file()) {
|
||||||
None => {
|
None => {
|
||||||
|
|
@ -33,7 +32,6 @@ impl UsrJaySyncFileSurface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_release(&self) -> Rc<UsrJaySyncFileRelease> {
|
pub fn get_release(&self) -> Rc<UsrJaySyncFileRelease> {
|
||||||
let obj = Rc::new(UsrJaySyncFileRelease {
|
let obj = Rc::new(UsrJaySyncFileRelease {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ pub struct UsrWlDataDevice {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWlDataDevice {
|
impl UsrWlDataDevice {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_selection(&self, serial: u32, source: &UsrWlDataSource) {
|
pub fn set_selection(&self, serial: u32, source: &UsrWlDataSource) {
|
||||||
self.con.request(SetSelection {
|
self.con.request(SetSelection {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ pub struct UsrWlDataDeviceManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWlDataDeviceManager {
|
impl UsrWlDataDeviceManager {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn create_data_source(&self) -> Rc<UsrWlDataSource> {
|
pub fn create_data_source(&self) -> Rc<UsrWlDataSource> {
|
||||||
let obj = Rc::new(UsrWlDataSource {
|
let obj = Rc::new(UsrWlDataSource {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
@ -37,7 +36,6 @@ impl UsrWlDataDeviceManager {
|
||||||
obj
|
obj
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_data_device(&self, seat: &UsrWlSeat) -> Rc<UsrWlDataDevice> {
|
pub fn get_data_device(&self, seat: &UsrWlSeat) -> Rc<UsrWlDataDevice> {
|
||||||
let obj = Rc::new(UsrWlDataDevice {
|
let obj = Rc::new(UsrWlDataDevice {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ pub struct UsrWlDataOffer {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWlDataOffer {
|
impl UsrWlDataOffer {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn receive(&self, mime_type: &str, fd: &Rc<OwnedFd>) {
|
pub fn receive(&self, mime_type: &str, fd: &Rc<OwnedFd>) {
|
||||||
self.con.request(Receive {
|
self.con.request(Receive {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ pub trait UsrWlDataSourceOwner {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWlDataSource {
|
impl UsrWlDataSource {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn offer(&self, mime_type: &str) {
|
pub fn offer(&self, mime_type: &str) {
|
||||||
self.con.request(Offer {
|
self.con.request(Offer {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@ pub trait UsrWlPointerOwner {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWlPointer {
|
impl UsrWlPointer {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_cursor(&self, serial: u32, cursor: Option<&UsrWlSurface>, hot_x: i32, hot_y: i32) {
|
pub fn set_cursor(&self, serial: u32, cursor: Option<&UsrWlSurface>, hot_x: i32, hot_y: i32) {
|
||||||
self.con.request(SetCursor {
|
self.con.request(SetCursor {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,6 @@ impl UsrWlSeat {
|
||||||
ptr
|
ptr
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_keyboard(&self) -> Rc<UsrWlKeyboard> {
|
pub fn get_keyboard(&self) -> Rc<UsrWlKeyboard> {
|
||||||
let kb = Rc::new(UsrWlKeyboard {
|
let kb = Rc::new(UsrWlKeyboard {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ pub struct UsrWpCursorShapeDeviceV1 {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWpCursorShapeDeviceV1 {
|
impl UsrWpCursorShapeDeviceV1 {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_shape(&self, serial: u32, cursor: KnownCursor) {
|
pub fn set_shape(&self, serial: u32, cursor: KnownCursor) {
|
||||||
self.con.request(SetShape {
|
self.con.request(SetShape {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ pub struct UsrWpCursorShapeManagerV1 {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrWpCursorShapeManagerV1 {
|
impl UsrWpCursorShapeManagerV1 {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_pointer(&self, pointer: &UsrWlPointer) -> Rc<UsrWpCursorShapeDeviceV1> {
|
pub fn get_pointer(&self, pointer: &UsrWlPointer) -> Rc<UsrWpCursorShapeDeviceV1> {
|
||||||
let obj = Rc::new(UsrWpCursorShapeDeviceV1 {
|
let obj = Rc::new(UsrWpCursorShapeDeviceV1 {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ pub trait UsrXdgSurfaceOwner {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrXdgSurface {
|
impl UsrXdgSurface {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_toplevel(&self) -> Rc<UsrXdgToplevel> {
|
pub fn get_toplevel(&self) -> Rc<UsrXdgToplevel> {
|
||||||
let obj = Rc::new(UsrXdgToplevel {
|
let obj = Rc::new(UsrXdgToplevel {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ pub struct UsrXdgToplevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrXdgToplevel {
|
impl UsrXdgToplevel {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_title(&self, title: &str) {
|
pub fn set_title(&self, title: &str) {
|
||||||
self.con.request(SetTitle {
|
self.con.request(SetTitle {
|
||||||
self_id: self.id,
|
self_id: self.id,
|
||||||
|
|
@ -24,7 +23,6 @@ impl UsrXdgToplevel {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn set_fullscreen(&self, fullscreen: bool) {
|
pub fn set_fullscreen(&self, fullscreen: bool) {
|
||||||
match fullscreen {
|
match fullscreen {
|
||||||
true => {
|
true => {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ pub struct UsrXdgWmBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrXdgWmBase {
|
impl UsrXdgWmBase {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn get_xdg_surface(&self, surface: &UsrWlSurface) -> Rc<UsrXdgSurface> {
|
pub fn get_xdg_surface(&self, surface: &UsrWlSurface) -> Rc<UsrXdgSurface> {
|
||||||
let obj = Rc::new(UsrXdgSurface {
|
let obj = Rc::new(UsrXdgSurface {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ pub struct UsrZwpLinuxDmabufV1 {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UsrZwpLinuxDmabufV1 {
|
impl UsrZwpLinuxDmabufV1 {
|
||||||
#[expect(dead_code)]
|
|
||||||
pub fn create_buffer(&self, buffer: &DmaBuf) -> Rc<UsrWlBuffer> {
|
pub fn create_buffer(&self, buffer: &DmaBuf) -> Rc<UsrWlBuffer> {
|
||||||
let params = Rc::new(UsrZwpLinuxBufferParamsV1 {
|
let params = Rc::new(UsrZwpLinuxBufferParamsV1 {
|
||||||
id: self.con.id(),
|
id: self.con.id(),
|
||||||
|
|
|
||||||
|
|
@ -211,6 +211,12 @@ pub struct Theme {
|
||||||
pub bar_separator_width: Option<i32>,
|
pub bar_separator_width: Option<i32>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Default)]
|
||||||
|
pub struct Egui {
|
||||||
|
pub proportional_fonts: Option<Vec<String>>,
|
||||||
|
pub monospace_fonts: Option<Vec<String>>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Status {
|
pub struct Status {
|
||||||
pub format: MessageFormat,
|
pub format: MessageFormat,
|
||||||
|
|
@ -510,6 +516,7 @@ pub struct Config {
|
||||||
pub auto_reload: Option<bool>,
|
pub auto_reload: Option<bool>,
|
||||||
pub log_level: Option<LogLevel>,
|
pub log_level: Option<LogLevel>,
|
||||||
pub theme: Theme,
|
pub theme: Theme,
|
||||||
|
pub egui: Egui,
|
||||||
pub gfx_api: Option<GfxApi>,
|
pub gfx_api: Option<GfxApi>,
|
||||||
pub direct_scanout_enabled: Option<bool>,
|
pub direct_scanout_enabled: Option<bool>,
|
||||||
pub drm_devices: Vec<ConfigDrmDevice>,
|
pub drm_devices: Vec<ConfigDrmDevice>,
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ mod connector_match;
|
||||||
mod content_type;
|
mod content_type;
|
||||||
mod drm_device;
|
mod drm_device;
|
||||||
mod drm_device_match;
|
mod drm_device_match;
|
||||||
|
mod egui;
|
||||||
mod env;
|
mod env;
|
||||||
pub mod exec;
|
pub mod exec;
|
||||||
mod fallback_output_mode;
|
mod fallback_output_mode;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use {
|
use {
|
||||||
crate::{
|
crate::{
|
||||||
config::{
|
config::{
|
||||||
Action, Config, Libei, Theme, UiDrag,
|
Action, Config, Egui, Libei, Theme, UiDrag,
|
||||||
context::Context,
|
context::Context,
|
||||||
extractor::{Extractor, ExtractorError, arr, bol, int, opt, recover, str, val},
|
extractor::{Extractor, ExtractorError, arr, bol, int, opt, recover, str, val},
|
||||||
parser::{DataType, ParseResult, Parser, UnexpectedDataType},
|
parser::{DataType, ParseResult, Parser, UnexpectedDataType},
|
||||||
|
|
@ -13,6 +13,7 @@ use {
|
||||||
connector::ConnectorsParser,
|
connector::ConnectorsParser,
|
||||||
drm_device::DrmDevicesParser,
|
drm_device::DrmDevicesParser,
|
||||||
drm_device_match::DrmDeviceMatchParser,
|
drm_device_match::DrmDeviceMatchParser,
|
||||||
|
egui::EguiParser,
|
||||||
env::EnvParser,
|
env::EnvParser,
|
||||||
fallback_output_mode::FallbackOutputModeParser,
|
fallback_output_mode::FallbackOutputModeParser,
|
||||||
float::FloatParser,
|
float::FloatParser,
|
||||||
|
|
@ -150,6 +151,7 @@ impl Parser for ConfigParser<'_> {
|
||||||
simple_im_val,
|
simple_im_val,
|
||||||
show_titles,
|
show_titles,
|
||||||
fallback_output_mode_val,
|
fallback_output_mode_val,
|
||||||
|
egui_val,
|
||||||
),
|
),
|
||||||
) = ext.extract((
|
) = ext.extract((
|
||||||
(
|
(
|
||||||
|
|
@ -208,6 +210,7 @@ impl Parser for ConfigParser<'_> {
|
||||||
opt(val("simple-im")),
|
opt(val("simple-im")),
|
||||||
recover(opt(bol("show-titles"))),
|
recover(opt(bol("show-titles"))),
|
||||||
opt(val("fallback-output-mode")),
|
opt(val("fallback-output-mode")),
|
||||||
|
opt(val("egui")),
|
||||||
),
|
),
|
||||||
))?;
|
))?;
|
||||||
let mut keymap = None;
|
let mut keymap = None;
|
||||||
|
|
@ -313,6 +316,15 @@ impl Parser for ConfigParser<'_> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let mut egui = Egui::default();
|
||||||
|
if let Some(value) = egui_val {
|
||||||
|
match value.parse(&mut EguiParser(self.0)) {
|
||||||
|
Ok(v) => egui = v,
|
||||||
|
Err(e) => {
|
||||||
|
log::warn!("Could not parse the egui settings: {}", self.0.error(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
let mut gfx_api = None;
|
let mut gfx_api = None;
|
||||||
if let Some(value) = gfx_api_val {
|
if let Some(value) = gfx_api_val {
|
||||||
match value.parse(&mut GfxApiParser) {
|
match value.parse(&mut GfxApiParser) {
|
||||||
|
|
@ -556,6 +568,7 @@ impl Parser for ConfigParser<'_> {
|
||||||
auto_reload: auto_reload.despan(),
|
auto_reload: auto_reload.despan(),
|
||||||
log_level,
|
log_level,
|
||||||
theme,
|
theme,
|
||||||
|
egui,
|
||||||
gfx_api,
|
gfx_api,
|
||||||
drm_devices,
|
drm_devices,
|
||||||
direct_scanout_enabled: direct_scanout.despan(),
|
direct_scanout_enabled: direct_scanout.despan(),
|
||||||
|
|
|
||||||
63
toml-config/src/config/parsers/egui.rs
Normal file
63
toml-config/src/config/parsers/egui.rs
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
use {
|
||||||
|
crate::{
|
||||||
|
config::{
|
||||||
|
Egui,
|
||||||
|
context::Context,
|
||||||
|
extractor::{Extractor, ExtractorError, arr, opt},
|
||||||
|
parser::{DataType, ParseResult, Parser, UnexpectedDataType},
|
||||||
|
},
|
||||||
|
toml::{
|
||||||
|
toml_span::{Span, Spanned},
|
||||||
|
toml_value::Value,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
indexmap::IndexMap,
|
||||||
|
thiserror::Error,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub struct EguiParser<'a>(pub &'a Context<'a>);
|
||||||
|
|
||||||
|
#[derive(Debug, Error)]
|
||||||
|
pub enum EguiParserError {
|
||||||
|
#[error(transparent)]
|
||||||
|
Expected(#[from] UnexpectedDataType),
|
||||||
|
#[error(transparent)]
|
||||||
|
Extractor(#[from] ExtractorError),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Parser for EguiParser<'_> {
|
||||||
|
type Value = Egui;
|
||||||
|
type Error = EguiParserError;
|
||||||
|
const EXPECTED: &'static [DataType] = &[DataType::Table];
|
||||||
|
|
||||||
|
fn parse_table(
|
||||||
|
&mut self,
|
||||||
|
span: Span,
|
||||||
|
table: &IndexMap<Spanned<String>, Spanned<Value>>,
|
||||||
|
) -> ParseResult<Self> {
|
||||||
|
let mut ext = Extractor::new(self.0, span, table);
|
||||||
|
let (proportional_fonts_arr, monospace_fonts_arr) =
|
||||||
|
ext.extract((opt(arr("proportional-fonts")), opt(arr("monospace-fonts"))))?;
|
||||||
|
let mut proportional_fonts = None;
|
||||||
|
let mut monospace_fonts = None;
|
||||||
|
for (out, f) in [
|
||||||
|
(&mut proportional_fonts, proportional_fonts_arr),
|
||||||
|
(&mut monospace_fonts, monospace_fonts_arr),
|
||||||
|
] {
|
||||||
|
if let Some(f) = f {
|
||||||
|
let fonts = out.insert(vec![]);
|
||||||
|
for f in f.value {
|
||||||
|
let Value::String(s) = &f.value else {
|
||||||
|
log::error!("Expected a string: {}", self.0.error3(f.span));
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
fonts.push(s.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(Egui {
|
||||||
|
proportional_fonts,
|
||||||
|
monospace_fonts,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -44,8 +44,8 @@ use {
|
||||||
switch_to_vt,
|
switch_to_vt,
|
||||||
tasks::{self, JoinHandle},
|
tasks::{self, JoinHandle},
|
||||||
theme::{
|
theme::{
|
||||||
reset_colors, reset_font, reset_sizes, set_bar_font, set_bar_position, set_font,
|
reset_colors, reset_font, reset_sizes, set_bar_font, set_bar_position,
|
||||||
set_title_font,
|
set_egui_monospace_fonts, set_egui_proportional_fonts, set_font, set_title_font,
|
||||||
},
|
},
|
||||||
toggle_float_above_fullscreen, toggle_show_bar, toggle_show_titles,
|
toggle_float_above_fullscreen, toggle_show_bar, toggle_show_titles,
|
||||||
video::{
|
video::{
|
||||||
|
|
@ -1633,6 +1633,12 @@ fn load_config(initial_load: bool, auto_reload: bool, persistent: &Rc<Persistent
|
||||||
if let Some(v) = config.fallback_output_mode {
|
if let Some(v) = config.fallback_output_mode {
|
||||||
persistent.seat.set_fallback_output_mode(v);
|
persistent.seat.set_fallback_output_mode(v);
|
||||||
}
|
}
|
||||||
|
if let Some(f) = &config.egui.proportional_fonts {
|
||||||
|
set_egui_proportional_fonts(f.iter().map(|s| &**s));
|
||||||
|
}
|
||||||
|
if let Some(f) = &config.egui.monospace_fonts {
|
||||||
|
set_egui_monospace_fonts(f.iter().map(|s| &**s));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_command(exec: &Exec) -> Command {
|
fn create_command(exec: &Exec) -> Command {
|
||||||
|
|
|
||||||
|
|
@ -1081,6 +1081,10 @@
|
||||||
"fallback-output-mode": {
|
"fallback-output-mode": {
|
||||||
"description": "Sets the fallback output mode.\n\nThe default is `cursor`.\n\n- Example:\n\n ```toml\n fallback-output-mode = \"focus\"\n ```\n",
|
"description": "Sets the fallback output mode.\n\nThe default is `cursor`.\n\n- Example:\n\n ```toml\n fallback-output-mode = \"focus\"\n ```\n",
|
||||||
"$ref": "#/$defs/FallbackOutputMode"
|
"$ref": "#/$defs/FallbackOutputMode"
|
||||||
|
},
|
||||||
|
"egui": {
|
||||||
|
"description": "Sets the egui settings of the compositor.\n",
|
||||||
|
"$ref": "#/$defs/Egui"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": []
|
"required": []
|
||||||
|
|
@ -1237,6 +1241,29 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"Egui": {
|
||||||
|
"description": "The egui settings.\n",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"proportional-fonts": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "The list of proportional fonts.\n\nThe default is `[\"sans-serif\", \"Noto Sans\", \"Noto Color Emoji\"]`.\n",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"monospace-fonts": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "The list of monospace fonts.\n\nThe default is `[\"monospace\", \"Noto Sans Mono\", \"Noto Color Emoji\"]`.\n",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": []
|
||||||
|
},
|
||||||
"Eotf": {
|
"Eotf": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The EOTF of an output.\n",
|
"description": "The EOTF of an output.\n",
|
||||||
|
|
|
||||||
|
|
@ -2248,6 +2248,12 @@ The table has the following fields:
|
||||||
|
|
||||||
The value of this field should be a [FallbackOutputMode](#types-FallbackOutputMode).
|
The value of this field should be a [FallbackOutputMode](#types-FallbackOutputMode).
|
||||||
|
|
||||||
|
- `egui` (optional):
|
||||||
|
|
||||||
|
Sets the egui settings of the compositor.
|
||||||
|
|
||||||
|
The value of this field should be a [Egui](#types-Egui).
|
||||||
|
|
||||||
|
|
||||||
<a name="types-Connector"></a>
|
<a name="types-Connector"></a>
|
||||||
### `Connector`
|
### `Connector`
|
||||||
|
|
@ -2588,6 +2594,32 @@ The table has the following fields:
|
||||||
The numbers should be integers.
|
The numbers should be integers.
|
||||||
|
|
||||||
|
|
||||||
|
<a name="types-Egui"></a>
|
||||||
|
### `Egui`
|
||||||
|
|
||||||
|
The egui settings.
|
||||||
|
|
||||||
|
Values of this type should be tables.
|
||||||
|
|
||||||
|
The table has the following fields:
|
||||||
|
|
||||||
|
- `proportional-fonts` (optional):
|
||||||
|
|
||||||
|
The list of proportional fonts.
|
||||||
|
|
||||||
|
The default is `["sans-serif", "Noto Sans", "Noto Color Emoji"]`.
|
||||||
|
|
||||||
|
The value of this field should be an array of strings.
|
||||||
|
|
||||||
|
- `monospace-fonts` (optional):
|
||||||
|
|
||||||
|
The list of monospace fonts.
|
||||||
|
|
||||||
|
The default is `["monospace", "Noto Sans Mono", "Noto Color Emoji"]`.
|
||||||
|
|
||||||
|
The value of this field should be an array of strings.
|
||||||
|
|
||||||
|
|
||||||
<a name="types-Eotf"></a>
|
<a name="types-Eotf"></a>
|
||||||
### `Eotf`
|
### `Eotf`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3004,6 +3004,11 @@ Config:
|
||||||
```toml
|
```toml
|
||||||
fallback-output-mode = "focus"
|
fallback-output-mode = "focus"
|
||||||
```
|
```
|
||||||
|
egui:
|
||||||
|
ref: Egui
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
Sets the egui settings of the compositor.
|
||||||
|
|
||||||
|
|
||||||
Idle:
|
Idle:
|
||||||
|
|
@ -4426,3 +4431,28 @@ FallbackOutputMode:
|
||||||
description: Use the output the cursor is on.
|
description: Use the output the cursor is on.
|
||||||
- value: focus
|
- value: focus
|
||||||
description: Use the output the focus is on (highlighted window).
|
description: Use the output the focus is on (highlighted window).
|
||||||
|
|
||||||
|
|
||||||
|
Egui:
|
||||||
|
kind: table
|
||||||
|
description: |
|
||||||
|
The egui settings.
|
||||||
|
fields:
|
||||||
|
proportional-fonts:
|
||||||
|
kind: array
|
||||||
|
items:
|
||||||
|
kind: string
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
The list of proportional fonts.
|
||||||
|
|
||||||
|
The default is `["sans-serif", "Noto Sans", "Noto Color Emoji"]`.
|
||||||
|
monospace-fonts:
|
||||||
|
kind: array
|
||||||
|
items:
|
||||||
|
kind: string
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
The list of monospace fonts.
|
||||||
|
|
||||||
|
The default is `["monospace", "Noto Sans Mono", "Noto Color Emoji"]`.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue