diff --git a/Cargo.lock b/Cargo.lock
index 4885102..d839eb5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -35,20 +35,21 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "ahash"
-version = "0.8.3"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
dependencies = [
"cfg-if",
"once_cell",
"version_check",
+ "zerocopy",
]
[[package]]
name = "aho-corasick"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
dependencies = [
"memchr",
]
@@ -92,7 +93,7 @@ dependencies = [
"cc",
"jni-sys",
"libc",
- "log",
+ "log 0.4.20",
"ndk",
"ndk-context",
"ndk-sys",
@@ -114,6 +115,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "arrayref"
version = "0.3.7"
@@ -135,6 +145,17 @@ dependencies = [
"libloading 0.7.4",
]
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
[[package]]
name = "autocfg"
version = "1.1.0"
@@ -162,18 +183,18 @@ version = "0.68.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"cexpr",
"clang-sys",
"lazy_static",
"lazycell",
"peeking_take_while",
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.37",
+ "syn 2.0.38",
]
[[package]]
@@ -205,9 +226,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
[[package]]
name = "block"
@@ -265,15 +286,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
dependencies = [
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
]
[[package]]
name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
@@ -288,7 +309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
dependencies = [
"bitflags 1.3.2",
- "log",
+ "log 0.4.20",
"nix 0.25.1",
"slotmap",
"thiserror",
@@ -297,7 +318,7 @@ dependencies = [
[[package]]
name = "cappy3ds"
-version = "0.1.0"
+version = "0.0.1"
dependencies = [
"bytes",
"hex",
@@ -318,18 +339,36 @@ dependencies = [
"bytemuck",
"bytes",
"cappy3ds",
+ "cbindgen",
"cpal",
+ "csbindgen",
"env_logger",
"futures",
"glam",
"image",
- "log",
+ "log 0.4.20",
"raw-window-handle",
"ringbuf",
"simple-error",
"wgpu",
]
+[[package]]
+name = "cbindgen"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83a8444da261b342a054d16aaf749466c10b4ab28360770a5f8bae453281e964"
+dependencies = [
+ "clap",
+ "log 0.3.9",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "syn 0.11.11",
+ "tempdir",
+ "toml",
+]
+
[[package]]
name = "cc"
version = "1.0.83"
@@ -378,6 +417,21 @@ dependencies = [
"libloading 0.7.4",
]
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
[[package]]
name = "codespan-reporting"
version = "0.11.1"
@@ -416,16 +470,10 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
dependencies = [
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
"libc",
]
-[[package]]
-name = "core-foundation-sys"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
-
[[package]]
name = "core-foundation-sys"
version = "0.8.4"
@@ -458,12 +506,12 @@ dependencies = [
[[package]]
name = "coreaudio-rs"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb17e2d1795b1996419648915df94bc7103c28f7b48062d7acf4652fc371b2ff"
+checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace"
dependencies = [
"bitflags 1.3.2",
- "core-foundation-sys 0.6.2",
+ "core-foundation-sys",
"coreaudio-sys",
]
@@ -483,7 +531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c"
dependencies = [
"alsa",
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
"coreaudio-rs",
"dasp_sample",
"jni 0.19.0",
@@ -503,9 +551,9 @@ dependencies = [
[[package]]
name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
dependencies = [
"libc",
]
@@ -568,13 +616,23 @@ dependencies = [
"typenum",
]
+[[package]]
+name = "csbindgen"
+version = "1.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df2f2752e26ade4753a17512e2b072489b7eb1df357a8c62cbdb464cff809b27"
+dependencies = [
+ "regex",
+ "syn 1.0.109",
+]
+
[[package]]
name = "d3d12"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"libloading 0.8.1",
"winapi",
]
@@ -616,6 +674,12 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+[[package]]
+name = "dtoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
+
[[package]]
name = "either"
version = "1.9.0"
@@ -630,7 +694,7 @@ checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
dependencies = [
"humantime",
"is-terminal",
- "log",
+ "log 0.4.20",
"regex",
"termcolor",
]
@@ -643,25 +707,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
dependencies = [
- "errno-dragonfly",
"libc",
"windows-sys 0.48.0",
]
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
[[package]]
name = "exr"
version = "1.71.0"
@@ -689,9 +742,9 @@ dependencies = [
[[package]]
name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -703,6 +756,9 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
dependencies = [
+ "futures-core",
+ "futures-sink",
+ "nanorand",
"spin",
]
@@ -732,8 +788,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
]
[[package]]
@@ -748,11 +804,17 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
[[package]]
name = "futures"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
dependencies = [
"futures-channel",
"futures-core",
@@ -765,9 +827,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
dependencies = [
"futures-core",
"futures-sink",
@@ -775,15 +837,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
[[package]]
name = "futures-executor"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
dependencies = [
"futures-core",
"futures-task",
@@ -792,38 +854,38 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
[[package]]
name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
dependencies = [
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
]
[[package]]
name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
[[package]]
name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
[[package]]
name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
dependencies = [
"futures-channel",
"futures-core",
@@ -847,6 +909,19 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
[[package]]
name = "gif"
version = "0.12.0"
@@ -863,6 +938,17 @@ version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log 0.4.20",
+ "xml-rs",
+]
+
[[package]]
name = "glam"
version = "0.24.2"
@@ -877,9 +963,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "glow"
-version = "0.12.3"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728"
+checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
dependencies = [
"js-sys",
"slotmap",
@@ -887,13 +973,22 @@ dependencies = [
"web-sys",
]
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
+dependencies = [
+ "gl_generator",
+]
+
[[package]]
name = "gpu-alloc"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"gpu-alloc-types",
]
@@ -903,20 +998,21 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
]
[[package]]
name = "gpu-allocator"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8"
+checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
dependencies = [
"backtrace",
- "log",
+ "log 0.4.20",
+ "presser",
"thiserror",
"winapi",
- "windows 0.44.0",
+ "windows 0.51.1",
]
[[package]]
@@ -925,9 +1021,9 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"gpu-descriptor-types",
- "hashbrown 0.14.1",
+ "hashbrown",
]
[[package]]
@@ -936,7 +1032,7 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
]
[[package]]
@@ -950,15 +1046,9 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.12.3"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
dependencies = [
"ahash",
"allocator-api2",
@@ -979,6 +1069,15 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "hermit-abi"
version = "0.3.3"
@@ -1016,22 +1115,12 @@ dependencies = [
"gif",
"jpeg-decoder",
"num-rational",
- "num-traits",
+ "num-traits 0.2.17",
"png",
"qoi",
"tiff",
]
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
[[package]]
name = "indexmap"
version = "2.0.2"
@@ -1039,7 +1128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
dependencies = [
"equivalent",
- "hashbrown 0.14.1",
+ "hashbrown",
]
[[package]]
@@ -1060,7 +1149,7 @@ version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.3.3",
"rustix",
"windows-sys 0.48.0",
]
@@ -1074,6 +1163,12 @@ dependencies = [
"either",
]
+[[package]]
+name = "itoa"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
+
[[package]]
name = "jni"
version = "0.19.0"
@@ -1083,7 +1178,7 @@ dependencies = [
"cesu8",
"combine",
"jni-sys",
- "log",
+ "log 0.4.20",
"thiserror",
"walkdir",
]
@@ -1097,7 +1192,7 @@ dependencies = [
"cesu8",
"combine",
"jni-sys",
- "log",
+ "log 0.4.20",
"thiserror",
"walkdir",
]
@@ -1110,9 +1205,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
dependencies = [
"libc",
]
@@ -1137,15 +1232,21 @@ dependencies = [
[[package]]
name = "khronos-egl"
-version = "4.1.0"
+version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
dependencies = [
"libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
"pkg-config",
]
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
[[package]]
name = "lazy_static"
version = "1.4.0"
@@ -1166,9 +1267,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
-version = "0.2.148"
+version = "0.2.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
[[package]]
name = "libloading"
@@ -1204,20 +1305,29 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
-version = "0.4.8"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
[[package]]
name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
dependencies = [
"autocfg",
"scopeguard",
]
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.20",
+]
+
[[package]]
name = "log"
version = "0.4.20"
@@ -1277,15 +1387,15 @@ dependencies = [
[[package]]
name = "metal"
-version = "0.26.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318"
+checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"block",
"core-graphics-types",
"foreign-types 0.5.0",
- "log",
+ "log 0.4.20",
"objc",
"paste",
]
@@ -1308,34 +1418,43 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.8"
+version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
- "log",
+ "log 0.4.20",
"wasi",
"windows-sys 0.48.0",
]
[[package]]
name = "naga"
-version = "0.13.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e"
+checksum = "61d829abac9f5230a85d8cc83ec0879b4c09790208ae25b5ea031ef84562e071"
dependencies = [
"bit-set",
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"codespan-reporting",
"hexf-parse",
- "indexmap 1.9.3",
- "log",
- "num-traits",
+ "indexmap",
+ "log 0.4.20",
+ "num-traits 0.2.17",
"rustc-hash",
"spirv",
"termcolor",
"thiserror",
- "unicode-xid",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
]
[[package]]
@@ -1409,7 +1528,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"syn 1.0.109",
]
@@ -1420,7 +1539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
- "num-traits",
+ "num-traits 0.2.17",
]
[[package]]
@@ -1431,14 +1550,23 @@ checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
dependencies = [
"autocfg",
"num-integer",
- "num-traits",
+ "num-traits 0.2.17",
]
[[package]]
name = "num-traits"
-version = "0.2.16"
+version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.17",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [
"autocfg",
]
@@ -1469,7 +1597,7 @@ checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
dependencies = [
"proc-macro-crate",
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"syn 1.0.109",
]
@@ -1481,8 +1609,8 @@ checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
dependencies = [
"proc-macro-crate",
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
]
[[package]]
@@ -1549,7 +1677,7 @@ dependencies = [
"ndk",
"ndk-context",
"num-derive",
- "num-traits",
+ "num-traits 0.2.17",
"oboe-sys",
]
@@ -1574,7 +1702,7 @@ version = "0.3.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f"
dependencies = [
- "redox_syscall",
+ "redox_syscall 0.3.5",
]
[[package]]
@@ -1598,13 +1726,13 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
"cfg-if",
"libc",
- "redox_syscall",
+ "redox_syscall 0.4.1",
"smallvec",
"windows-targets 0.48.5",
]
@@ -1658,6 +1786,12 @@ dependencies = [
"miniz_oxide",
]
+[[package]]
+name = "presser"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
+
[[package]]
name = "proc-macro-crate"
version = "1.3.1"
@@ -1670,9 +1804,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
dependencies = [
"unicode-ident",
]
@@ -1692,6 +1826,12 @@ dependencies = [
"bytemuck",
]
+[[package]]
+name = "quote"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
+
[[package]]
name = "quote"
version = "1.0.33"
@@ -1701,6 +1841,34 @@ dependencies = [
"proc-macro2",
]
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
[[package]]
name = "range-alloc"
version = "0.1.3"
@@ -1733,6 +1901,15 @@ dependencies = [
"crossbeam-utils",
]
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
[[package]]
name = "redox_syscall"
version = "0.3.5"
@@ -1742,11 +1919,20 @@ dependencies = [
"bitflags 1.3.2",
]
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
[[package]]
name = "regex"
-version = "1.9.6"
+version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr",
@@ -1756,9 +1942,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.3.9"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr",
@@ -1767,9 +1953,18 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
[[package]]
name = "renderdoc-sys"
@@ -1814,9 +2009,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c3d8c6fd84090ae348e63a84336b112b5c3918b3bf0493a581f7bd8ee623c29"
dependencies = [
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"rust-embed-utils",
- "syn 2.0.37",
+ "syn 2.0.38",
"walkdir",
]
@@ -1844,11 +2039,11 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
-version = "0.38.15"
+version = "0.38.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531"
+checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"errno",
"libc",
"linux-raw-sys",
@@ -1883,12 +2078,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09"
dependencies = [
"ab_glyph",
- "log",
+ "log 0.4.20",
"memmap2",
"smithay-client-toolkit",
"tiny-skia",
]
+[[package]]
+name = "serde"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af"
+
+[[package]]
+name = "serde_codegen_internals"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc888bd283bd2420b16ad0d860e35ad8acb21941180a83a189bb2046f9d00400"
+dependencies = [
+ "syn 0.11.11",
+]
+
+[[package]]
+name = "serde_derive"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978fd866f4d4872084a81ccc35e275158351d3b9fe620074e7d7504b816b74ba"
+dependencies = [
+ "quote 0.3.15",
+ "serde_codegen_internals",
+ "syn 0.11.11",
+]
+
+[[package]]
+name = "serde_json"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8bcf487be7d2e15d3d543f04312de991d631cfe1b43ea0ade69e6a8a5b16a1"
+dependencies = [
+ "dtoa",
+ "itoa",
+ "num-traits 0.1.43",
+ "serde",
+]
+
[[package]]
name = "sha2"
version = "0.10.8"
@@ -1924,7 +2157,7 @@ version = "0.1.0"
dependencies = [
"cappy3ds_render",
"env_logger",
- "log",
+ "log 0.4.20",
"winit",
]
@@ -1962,7 +2195,7 @@ dependencies = [
"calloop",
"dlib",
"lazy_static",
- "log",
+ "log 0.4.20",
"memmap2",
"nix 0.24.3",
"pkg-config",
@@ -1987,7 +2220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
dependencies = [
"bitflags 1.3.2",
- "num-traits",
+ "num-traits 0.2.17",
]
[[package]]
@@ -2002,6 +2235,23 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "syn"
+version = "0.11.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
+dependencies = [
+ "quote 0.3.15",
+ "synom",
+ "unicode-xid 0.0.4",
+]
+
[[package]]
name = "syn"
version = "1.0.109"
@@ -2009,21 +2259,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.37"
+version = "2.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
dependencies = [
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"unicode-ident",
]
+[[package]]
+name = "synom"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
+dependencies = [
+ "unicode-xid 0.0.4",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+dependencies = [
+ "rand",
+ "remove_dir_all",
+]
+
[[package]]
name = "termcolor"
version = "1.3.0"
@@ -2033,24 +2302,33 @@ dependencies = [
"winapi-util",
]
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
[[package]]
name = "thiserror"
-version = "1.0.49"
+version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.49"
+version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
]
[[package]]
@@ -2089,11 +2367,20 @@ dependencies = [
"strict-num",
]
+[[package]]
+name = "toml"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd86ad9ebee246fdedd610e0f6d0587b754a3d81438db930a244d0480ed7878f"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
[[package]]
name = "toml_edit"
@@ -2101,7 +2388,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.0.2",
+ "indexmap",
"toml_datetime",
"winnow",
]
@@ -2130,6 +2417,12 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+[[package]]
+name = "unicode-xid"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
+
[[package]]
name = "unicode-xid"
version = "0.2.4"
@@ -2187,11 +2480,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
dependencies = [
"bumpalo",
- "log",
+ "log 0.4.20",
"once_cell",
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
"wasm-bindgen-shared",
]
@@ -2213,7 +2506,7 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
- "quote",
+ "quote 1.0.33",
"wasm-bindgen-macro-support",
]
@@ -2224,8 +2517,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
- "quote",
- "syn 2.0.37",
+ "quote 1.0.33",
+ "syn 2.0.38",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -2294,7 +2587,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
dependencies = [
"proc-macro2",
- "quote",
+ "quote 1.0.33",
"xml-rs",
]
@@ -2327,14 +2620,15 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
[[package]]
name = "wgpu"
-version = "0.17.1"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed547920565c56c7a29afb4538ac5ae5048865a5d2f05bff3ad4fbeb921a9a2c"
+checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
dependencies = [
"arrayvec",
"cfg-if",
+ "flume",
"js-sys",
- "log",
+ "log 0.4.20",
"naga",
"parking_lot",
"profiling",
@@ -2351,15 +2645,15 @@ dependencies = [
[[package]]
name = "wgpu-core"
-version = "0.17.1"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f8a44dd301a30ceeed3c27d8c0090433d3da04d7b2a4042738095a424d12ae7"
+checksum = "837e02ddcdc6d4a9b56ba4598f7fd4202a7699ab03f6ef4dcdebfad2c966aea6"
dependencies = [
"arrayvec",
"bit-vec",
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"codespan-reporting",
- "log",
+ "log 0.4.20",
"naga",
"parking_lot",
"profiling",
@@ -2374,19 +2668,20 @@ dependencies = [
[[package]]
name = "wgpu-hal"
-version = "0.17.2"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a80bf0e3c77399bb52850cb0830af9bad073d5cfcb9dd8253bef8125c42db17"
+checksum = "1e30b9a8155c83868e82a8c5d3ce899de6c3961d2ef595de8fc168a1677fc2d8"
dependencies = [
"android_system_properties",
"arrayvec",
"ash",
"bit-set",
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"block",
"core-graphics-types",
"d3d12",
"glow",
+ "glutin_wgl_sys",
"gpu-alloc",
"gpu-allocator",
"gpu-descriptor",
@@ -2395,10 +2690,11 @@ dependencies = [
"khronos-egl",
"libc",
"libloading 0.8.1",
- "log",
+ "log 0.4.20",
"metal",
"naga",
"objc",
+ "once_cell",
"parking_lot",
"profiling",
"range-alloc",
@@ -2415,11 +2711,11 @@ dependencies = [
[[package]]
name = "wgpu-types"
-version = "0.17.0"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee64d7398d0c2f9ca48922c902ef69c42d000c759f3db41e355f4a570b052b67"
+checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
"js-sys",
"web-sys",
]
@@ -2463,20 +2759,30 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
-version = "0.44.0"
+version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
+checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25"
dependencies = [
"windows-targets 0.42.2",
]
[[package]]
name = "windows"
-version = "0.46.0"
+version = "0.51.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
dependencies = [
- "windows-targets 0.42.2",
+ "windows-core",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
]
[[package]]
@@ -2625,7 +2931,7 @@ dependencies = [
"dispatch",
"instant",
"libc",
- "log",
+ "log 0.4.20",
"mio",
"ndk",
"objc2",
@@ -2633,7 +2939,7 @@ dependencies = [
"orbclient",
"percent-encoding",
"raw-window-handle",
- "redox_syscall",
+ "redox_syscall 0.3.5",
"sctk-adwaita",
"smithay-client-toolkit",
"wasm-bindgen",
@@ -2648,9 +2954,9 @@ dependencies = [
[[package]]
name = "winnow"
-version = "0.5.15"
+version = "0.5.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c"
dependencies = [
"memchr",
]
@@ -2681,6 +2987,26 @@ version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+[[package]]
+name = "zerocopy"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ede7d7c7970ca2215b8c1ccf4d4f354c4733201dfaaba72d44ae5b37472e4901"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b27b1bb92570f989aac0ab7e9cbfbacdd65973f7ee920d9f0e71ebac878fd0b"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.33",
+ "syn 2.0.38",
+]
+
[[package]]
name = "zune-inflate"
version = "0.2.54"
diff --git a/build_win_dll.bat b/build_win_dll.bat
new file mode 100644
index 0000000..335b530
--- /dev/null
+++ b/build_win_dll.bat
@@ -0,0 +1,2 @@
+cargo build
+xcopy .\target\debug\cappy3ds_render.dll .\win\ /Y
\ No newline at end of file
diff --git a/cappy3ds/src/main.rs b/cappy3ds/src/main.rs
deleted file mode 100644
index 1a3bfdb..0000000
--- a/cappy3ds/src/main.rs
+++ /dev/null
@@ -1,5 +0,0 @@
-mod capture;
-
-fn main() {
- //capture::katsukitty::do_capture();
-}
diff --git a/cappy3ds_render/Cargo.toml b/cappy3ds_render/Cargo.toml
index 44ac191..f92afd2 100644
--- a/cappy3ds_render/Cargo.toml
+++ b/cappy3ds_render/Cargo.toml
@@ -3,13 +3,17 @@ name = "cappy3ds_render"
version = "0.1.0"
edition = "2021"
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+build = "build.rs"
+
+[build-dependencies]
+cbindgen = "0.1.29"
+csbindgen = "1.8.0"
[dependencies]
bytemuck = { version = "1.14", features = [ "derive" ] }
env_logger = "0.10"
log = "0.4"
-wgpu = "0.17"
+wgpu = "0.18"
raw-window-handle = "0.5.2"
image = "0.24.7"
futures = "0.3.28"
diff --git a/cappy3ds_render/build.rs b/cappy3ds_render/build.rs
new file mode 100644
index 0000000..ff3ac63
--- /dev/null
+++ b/cappy3ds_render/build.rs
@@ -0,0 +1,7 @@
+fn main() {
+ csbindgen::Builder::default()
+ .input_extern_file("src/lib.rs")
+ .csharp_dll_name("cappy3ds_render")
+ .generate_csharp_file("../win/NativeMethods.g.cs")
+ .unwrap();
+}
diff --git a/cappy3ds_render/src/dsscreen.rs b/cappy3ds_render/src/dsscreen.rs
index e688bf6..09d0563 100644
--- a/cappy3ds_render/src/dsscreen.rs
+++ b/cappy3ds_render/src/dsscreen.rs
@@ -288,10 +288,12 @@ impl DSScreen {
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,
- store: true,
+ store: wgpu::StoreOp::Store,
},
})],
depth_stencil_attachment: None,
+ occlusion_query_set: None,
+ timestamp_writes: None,
});
render_pass.set_pipeline(&self.render_pipeline);
diff --git a/cappy3ds_render/src/lib.rs b/cappy3ds_render/src/lib.rs
index 7176cc9..123ab42 100644
--- a/cappy3ds_render/src/lib.rs
+++ b/cappy3ds_render/src/lib.rs
@@ -2,10 +2,11 @@ use bytes::BytesMut;
use futures::executor;
use raw_window_handle::{
AppKitDisplayHandle, AppKitWindowHandle, HasRawDisplayHandle, HasRawWindowHandle,
- RawDisplayHandle, RawWindowHandle,
+ RawDisplayHandle, RawWindowHandle, WindowsDisplayHandle,
};
use std::ffi;
+
mod dsscreen;
mod primitive;
mod render;
@@ -15,6 +16,16 @@ use std::thread;
pub use render::State;
#[no_mangle]
+#[cfg(target_os = "windows")]
+pub extern "C" fn send_swap_chain_panel(swap_chain_panel: *mut ffi::c_void) {
+ let mut res = State::new_from_swap_chain_panel(swap_chain_panel);
+ let mut v = executor::block_on(res);
+
+ v.render();
+}
+
+#[no_mangle]
+#[cfg(target_os = "macos")]
pub extern "C" fn send_window(app_kit_nsview: *mut ffi::c_void) {
let window = Window {
ns_view: app_kit_nsview,
@@ -61,18 +72,19 @@ fn trash_code(v: &mut State) {
cappy3ds.do_capture();
}
+#[cfg(target_os = "macos")]
pub struct Window {
- //id: usize,
- // ns_window: *mut ffi::c_void,
ns_view: *mut ffi::c_void,
}
+#[cfg(target_os = "macos")]
unsafe impl HasRawDisplayHandle for Window {
fn raw_display_handle(&self) -> RawDisplayHandle {
RawDisplayHandle::AppKit(AppKitDisplayHandle::empty())
}
}
+#[cfg(target_os = "macos")]
unsafe impl HasRawWindowHandle for Window {
fn raw_window_handle(&self) -> RawWindowHandle {
let mut handle = AppKitWindowHandle::empty();
diff --git a/cappy3ds_render/src/render.rs b/cappy3ds_render/src/render.rs
index fb91867..c444f00 100644
--- a/cappy3ds_render/src/render.rs
+++ b/cappy3ds_render/src/render.rs
@@ -6,8 +6,10 @@ use crate::dsscreen::DSScreen;
const SCENE_WIDTH: u32 = 1270;
const SCENE_HEIGHT: u32 = 720;
+use wgpu::{Instance, Surface};
+
pub struct State {
- surface: wgpu::Surface,
+ pub surface: wgpu::Surface,
device: wgpu::Device,
queue: wgpu::Queue,
//config: wgpu::SurfaceConfiguration,
@@ -21,27 +23,56 @@ pub struct State {
}
impl State {
+ pub async fn new_from_swap_chain_panel(swap_chain_panel: *mut std::ffi::c_void) -> Self {
+ let instance = Self::create_instance();
+
+ // # Safety
+ //
+ // The surface needs to live as long as the window that created it.
+ // State owns the window so this should be safe.
+ let surface = unsafe { instance.create_surface_from_swap_chain_panel(swap_chain_panel) };
+
+ Self::new_with_surface(instance, surface).await
+ }
+
// Creating some of the wgpu types requires async code
pub async fn new<
W: raw_window_handle::HasRawWindowHandle + raw_window_handle::HasRawDisplayHandle,
>(
window: &W,
) -> Self {
- // let size = window.inner_size();
+ let instance = Self::create_instance();
+
+ // # Safety
+ //
+ // The surface needs to live as long as the window that created it.
+ // State owns the window so this should be safe.
+ let surface = unsafe { instance.create_surface(&window) }.unwrap();
+
+ Self::new_with_surface(instance, surface).await
+ }
+ fn create_instance() -> wgpu::Instance{
// The instance is a handle to our GPU
// Backends::all => Vulkan + Metal + DX12 + Browser WebGPU
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
backends: wgpu::Backends::all(),
dx12_shader_compiler: Default::default(),
+ gles_minor_version: wgpu::Gles3MinorVersion::default(),
+ flags: wgpu::InstanceFlags::default(),
});
- // # Safety
- //
- // The surface needs to live as long as the window that created it.
- // State owns the window so this should be safe.
- let surface = unsafe { instance.create_surface(&window) }.unwrap();
+ return instance;
+ }
+ async fn new_with_surface(instance: Instance, surface: Surface) -> Self {
+ // let size = window.inner_size();
+
+ let width = 400;
+ let height = 400;
+
+
+
let adapter = instance
.request_adapter(&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::default(),
@@ -83,6 +114,7 @@ impl State {
alpha_mode: surface_caps.alpha_modes[0],
view_formats: vec![],
};
+
surface.configure(&device, &config);
let diffuse_bytes = include_bytes!("../resources/test/upper_5.png");
@@ -146,10 +178,12 @@ impl State {
b: 0.3,
a: 1.0,
}),
- store: true,
+ store: wgpu::StoreOp::Store,
},
})],
depth_stencil_attachment: None,
+ occlusion_query_set: None,
+ timestamp_writes: None,
});
}
diff --git a/win/App.xaml b/win/App.xaml
new file mode 100644
index 0000000..313cd92
--- /dev/null
+++ b/win/App.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win/App.xaml.cs b/win/App.xaml.cs
new file mode 100644
index 0000000..1d0fe24
--- /dev/null
+++ b/win/App.xaml.cs
@@ -0,0 +1,53 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Microsoft.UI.Xaml.Shapes;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using System.Runtime.InteropServices;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Cappy3ds
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : Application
+ {
+
+
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ ///
+ /// Invoked when the application is launched.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
+ {
+ m_window = new MainWindow();
+ m_window.Activate();
+ }
+
+ private Window m_window;
+ }
+}
diff --git a/win/Assets/LockScreenLogo.scale-200.png b/win/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000..7440f0d
Binary files /dev/null and b/win/Assets/LockScreenLogo.scale-200.png differ
diff --git a/win/Assets/SplashScreen.scale-200.png b/win/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000..32f486a
Binary files /dev/null and b/win/Assets/SplashScreen.scale-200.png differ
diff --git a/win/Assets/Square150x150Logo.scale-200.png b/win/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000..53ee377
Binary files /dev/null and b/win/Assets/Square150x150Logo.scale-200.png differ
diff --git a/win/Assets/Square44x44Logo.scale-200.png b/win/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000..f713bba
Binary files /dev/null and b/win/Assets/Square44x44Logo.scale-200.png differ
diff --git a/win/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/win/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000..dc9f5be
Binary files /dev/null and b/win/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/win/Assets/StoreLogo.png b/win/Assets/StoreLogo.png
new file mode 100644
index 0000000..a4586f2
Binary files /dev/null and b/win/Assets/StoreLogo.png differ
diff --git a/win/Assets/Wide310x150Logo.scale-200.png b/win/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000..8b4a5d0
Binary files /dev/null and b/win/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/win/Cappy3ds.csproj b/win/Cappy3ds.csproj
new file mode 100644
index 0000000..f452ce3
--- /dev/null
+++ b/win/Cappy3ds.csproj
@@ -0,0 +1,57 @@
+
+
+ WinExe
+ net6.0-windows10.0.19041.0
+ 10.0.17763.0
+ Cappy3ds
+ app.manifest
+ x86;x64;ARM64
+ win10-x86;win10-x64;win10-arm64
+ win10-$(Platform).pubxml
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
+
+ true
+
+
diff --git a/win/Cappy3ds.sln b/win/Cappy3ds.sln
new file mode 100644
index 0000000..6ed2749
--- /dev/null
+++ b/win/Cappy3ds.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.2092
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cappy3ds", "Cappy3ds.csproj", "{7197E3C4-DB4C-4CBD-A517-206C6E0D081F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x64.ActiveCfg = Debug|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x64.Build.0 = Debug|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x64.Deploy.0 = Debug|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x86.ActiveCfg = Debug|x86
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x86.Build.0 = Debug|x86
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Debug|x86.Deploy.0 = Debug|x86
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|ARM64.ActiveCfg = Release|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|ARM64.Build.0 = Release|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|ARM64.Deploy.0 = Release|ARM64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x64.ActiveCfg = Release|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x64.Build.0 = Release|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x64.Deploy.0 = Release|x64
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x86.ActiveCfg = Release|x86
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x86.Build.0 = Release|x86
+ {7197E3C4-DB4C-4CBD-A517-206C6E0D081F}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {009ED858-724A-44A4-B74E-E16AECEAAF7A}
+ EndGlobalSection
+EndGlobal
diff --git a/win/MainWindow.xaml b/win/MainWindow.xaml
new file mode 100644
index 0000000..930b526
--- /dev/null
+++ b/win/MainWindow.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/win/MainWindow.xaml.cs b/win/MainWindow.xaml.cs
new file mode 100644
index 0000000..89ff55c
--- /dev/null
+++ b/win/MainWindow.xaml.cs
@@ -0,0 +1,89 @@
+using Microsoft.UI.Content;
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Hosting;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.Devices.Enumeration;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using WinRT;
+using static Cappy3ds.MainWindow;
+
+
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Cappy3ds
+{
+
+ public sealed partial class MainWindow : Window
+ {
+ ///
+ /// Interface from microsoft.ui.xaml.media.dxinterop.h
+ ///
+ [ComImport]
+ [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [Guid("63aad0b8-7c24-40ff-85a8-640d944cc325")]
+ public interface ISwapChainPanelNative
+ {
+ [PreserveSig] uint SetSwapChain([In] IntPtr swapChain);
+ }
+
+ public MainWindow()
+ {
+ this.InitializeComponent();
+
+ unsafe
+ {
+
+
+ // var nativePanel = swapChainPanel1.As();
+
+ IntPtr objectAddress = Marshal.GetComInterfaceForObject(swapChainPanel1, typeof(ISwapChainPanelNative));
+
+ CsBindgen.NativeMethods.send_swap_chain_panel((void*)objectAddress);
+ }
+
+ // renderView.setup();
+
+
+ }
+
+ private void myButton_Click(object sender, RoutedEventArgs e)
+ {
+ myButton.Content = "Clicked";
+ }
+
+ [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
+ unsafe static int Sum(void* panel, void* test) {
+ Debug.WriteLine("test");
+
+ // cast panel back
+ var panel2 = SwapChainPanel.FromAbi((IntPtr)panel);
+ ISwapChainPanelNative panelNative = WinRT.CastExtensions.As(panel2);
+
+ panelNative.SetSwapChain((IntPtr)test);
+
+
+
+ return 1;
+ }
+ }
+
+
+}
diff --git a/win/NativeMethods.g.cs b/win/NativeMethods.g.cs
new file mode 100644
index 0000000..6076585
--- /dev/null
+++ b/win/NativeMethods.g.cs
@@ -0,0 +1,31 @@
+//
+// This code is generated by csbindgen.
+// DON'T CHANGE THIS DIRECTLY.
+//
+#pragma warning disable CS8500
+#pragma warning disable CS8981
+using System;
+using System.Runtime.InteropServices;
+
+
+namespace CsBindgen
+{
+ internal static unsafe partial class NativeMethods
+ {
+ const string __DllName = "cappy3ds_render";
+
+
+
+ [DllImport(__DllName, EntryPoint = "send_swap_chain_panel", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void send_swap_chain_panel(void* swap_chain_panel);
+
+ [DllImport(__DllName, EntryPoint = "send_window", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void send_window(void* app_kit_nsview);
+
+
+ }
+
+
+
+}
+
\ No newline at end of file
diff --git a/win/Package.appxmanifest b/win/Package.appxmanifest
new file mode 100644
index 0000000..c5a3ee2
--- /dev/null
+++ b/win/Package.appxmanifest
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+ Cappy3ds
+ ddrbo
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win/Properties/PublishProfiles/win10-arm64.pubxml b/win/Properties/PublishProfiles/win10-arm64.pubxml
new file mode 100644
index 0000000..a7fdd16
--- /dev/null
+++ b/win/Properties/PublishProfiles/win10-arm64.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ ARM64
+ win10-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/win/Properties/PublishProfiles/win10-x64.pubxml b/win/Properties/PublishProfiles/win10-x64.pubxml
new file mode 100644
index 0000000..26ea7e5
--- /dev/null
+++ b/win/Properties/PublishProfiles/win10-x64.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ x64
+ win10-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/win/Properties/PublishProfiles/win10-x86.pubxml b/win/Properties/PublishProfiles/win10-x86.pubxml
new file mode 100644
index 0000000..34d14d4
--- /dev/null
+++ b/win/Properties/PublishProfiles/win10-x86.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ x86
+ win10-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/win/Properties/launchSettings.json b/win/Properties/launchSettings.json
new file mode 100644
index 0000000..988bb66
--- /dev/null
+++ b/win/Properties/launchSettings.json
@@ -0,0 +1,11 @@
+{
+ "profiles": {
+ "Cappy3ds (Package)": {
+ "commandName": "MsixPackage",
+ "nativeDebugging": true
+ },
+ "Cappy3ds (Unpackaged)": {
+ "commandName": "Project"
+ }
+ }
+}
\ No newline at end of file
diff --git a/win/app.manifest b/win/app.manifest
new file mode 100644
index 0000000..dfa8dea
--- /dev/null
+++ b/win/app.manifest
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2
+
+
+
\ No newline at end of file