diff --git a/Cargo.lock b/Cargo.lock index 7313f42..51525ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.28" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb" +checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -110,9 +110,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -123,6 +123,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "adler32" version = "1.2.0" @@ -174,7 +180,7 @@ dependencies = [ "ndk 0.8.0", "ndk-context", "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.2", + "num_enum 0.7.3", "thiserror", ] @@ -195,7 +201,7 @@ dependencies = [ "ndk 0.9.0", "ndk-context", "ndk-sys 0.6.0+11769913", - "num_enum 0.7.2", + "num_enum 0.7.3", "thiserror", ] @@ -220,6 +226,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" + [[package]] name = "arboard" version = "3.4.1" @@ -237,9 +249,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -249,9 +261,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "as-raw-xcb-connection" @@ -373,7 +385,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -408,7 +420,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -470,23 +482,23 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide 0.8.0", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -506,9 +518,9 @@ checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" @@ -580,9 +592,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.16.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" dependencies = [ "bytemuck_derive", ] @@ -595,7 +607,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -612,9 +624,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.6.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "calloop" @@ -622,7 +634,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "log", "nix 0.25.1", "slotmap", @@ -667,7 +679,7 @@ dependencies = [ "calloop 0.12.4", "rustix", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", ] [[package]] @@ -679,17 +691,18 @@ dependencies = [ "calloop 0.13.0", "rustix", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", ] [[package]] name = "cc" -version = "1.1.6" +version = "1.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -779,10 +792,10 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "block", "cocoa-foundation", - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.22.3", "foreign-types 0.3.2", "libc", @@ -795,10 +808,10 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "block", "cocoa-foundation", - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.23.2", "foreign-types 0.5.0", "libc", @@ -811,9 +824,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "block", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "libc", "objc", @@ -910,10 +923,20 @@ dependencies = [ ] [[package]] -name = "core-foundation-sys" -version = "0.8.6" +name = "core-foundation" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" @@ -921,8 +944,8 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags 1.2.1", - "core-foundation", + "bitflags 1.3.2", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.3.2", "libc", @@ -934,8 +957,8 @@ version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ - "bitflags 1.2.1", - "core-foundation", + "bitflags 1.3.2", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.5.0", "libc", @@ -947,8 +970,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ - "bitflags 1.2.1", - "core-foundation", + "bitflags 1.3.2", + "core-foundation 0.9.4", "libc", ] @@ -958,7 +981,7 @@ version = "20.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.23.2", "foreign-types 0.5.0", "libc", @@ -1014,7 +1037,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eb5a3822b594afc99b503cc1859b94686d3c3efdd60507a28587dab80ee1071" dependencies = [ "cocoa 0.25.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "core-graphics 0.23.2", "core-text", @@ -1156,9 +1179,9 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "dwrote" -version = "0.11.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" +checksum = "70182709525a3632b2ba96b6569225467b18ecb4a77f46d255f713a6bebf05fd" dependencies = [ "lazy_static", "libc", @@ -1168,6 +1191,15 @@ dependencies = [ "wio", ] +[[package]] +name = "ecolor" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20930a432bbd57a6d55e07976089708d4893f3d556cf42a0d79e9e321fa73b10" +dependencies = [ + "bytemuck", +] + [[package]] name = "ecolor" version = "0.29.1" @@ -1175,7 +1207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "775cfde491852059e386c4e1deb4aef381c617dc364184c6f6afee99b87c402b" dependencies = [ "bytemuck", - "emath", + "emath 0.29.1", ] [[package]] @@ -1187,14 +1219,14 @@ dependencies = [ "ahash", "bytemuck", "document-features", - "egui", + "egui 0.29.1", "egui-wgpu", "egui-winit", - "egui_glow", + "egui_glow 0.29.1", "glow 0.14.2", "glutin 0.32.1", "glutin-winit 0.5.0", - "image 0.25.2", + "image 0.25.4", "js-sys", "log", "objc2 0.5.2", @@ -1213,6 +1245,17 @@ dependencies = [ "winit 0.30.5", ] +[[package]] +name = "egui" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "584c5d1bf9a67b25778a3323af222dbe1a1feb532190e103901187f92c7fe29a" +dependencies = [ + "ahash", + "epaint 0.27.2", + "nohash-hasher", +] + [[package]] name = "egui" version = "0.29.1" @@ -1221,8 +1264,8 @@ checksum = "53eafabcce0cb2325a59a98736efe0bf060585b437763f8c476957fb274bb974" dependencies = [ "accesskit", "ahash", - "emath", - "epaint", + "emath 0.29.1", + "epaint 0.29.1", "log", "nohash-hasher", ] @@ -1236,8 +1279,8 @@ dependencies = [ "ahash", "bytemuck", "document-features", - "egui", - "epaint", + "egui 0.29.1", + "epaint 0.29.1", "log", "thiserror", "type-map", @@ -1255,7 +1298,7 @@ dependencies = [ "accesskit_winit", "ahash", "arboard", - "egui", + "egui 0.29.1", "log", "raw-window-handle 0.6.2", "smithay-clipboard 0.7.2", @@ -1264,6 +1307,21 @@ dependencies = [ "winit 0.30.5", ] +[[package]] +name = "egui_glow" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e5d975f3c86edc3d35b1db88bb27c15dde7c55d3b5af164968ab5ede3f44ca" +dependencies = [ + "bytemuck", + "egui 0.27.2", + "glow 0.13.1", + "log", + "memoffset 0.9.1", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "egui_glow" version = "0.29.1" @@ -1272,7 +1330,7 @@ checksum = "0e39bccc683cd43adab530d8f21a13eb91e80de10bcc38c3f1c16601b6f62b26" dependencies = [ "ahash", "bytemuck", - "egui", + "egui 0.29.1", "glow 0.14.2", "log", "memoffset 0.9.1", @@ -1281,12 +1339,33 @@ dependencies = [ "winit 0.30.5", ] +[[package]] +name = "egui_sdl2_platform" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6362d5869954bc50ce3e91cacd36bed234eaa633266a80e886b10413e94e0748" +dependencies = [ + "anyhow", + "egui 0.27.2", + "log", + "sdl2", +] + [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "emath" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c3a552cfca14630702449d35f41c84a0d15963273771c6059175a803620f3f" +dependencies = [ + "bytemuck", +] + [[package]] name = "emath" version = "0.29.1" @@ -1320,7 +1399,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -1336,6 +1415,21 @@ dependencies = [ "termcolor", ] +[[package]] +name = "epaint" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b381f8b149657a4acf837095351839f32cd5c4aec1817fc4df84e18d76334176" +dependencies = [ + "ab_glyph", + "ahash", + "bytemuck", + "ecolor 0.27.2", + "emath 0.27.2", + "nohash-hasher", + "parking_lot", +] + [[package]] name = "epaint" version = "0.29.1" @@ -1345,8 +1439,8 @@ dependencies = [ "ab_glyph", "ahash", "bytemuck", - "ecolor", - "emath", + "ecolor 0.29.1", + "emath 0.29.1", "epaint_default_fonts", "log", "nohash-hasher", @@ -1420,21 +1514,21 @@ checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" dependencies = [ "simd-adler32", ] [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", - "miniz_oxide 0.7.4", + "miniz_oxide 0.8.0", ] [[package]] @@ -1470,7 +1564,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -1500,7 +1594,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "freetype-sys", "libc", ] @@ -1549,7 +1643,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -1597,7 +1691,7 @@ name = "gemmaegui" version = "0.1.0" dependencies = [ "eframe", - "egui", + "egui 0.29.1", "gemma", ] @@ -1620,6 +1714,19 @@ dependencies = [ "winit 0.27.5", ] +[[package]] +name = "gemmasdl2" +version = "0.1.0" +dependencies = [ + "anyhow", + "egui 0.27.2", + "egui_glow 0.27.2", + "egui_sdl2_platform", + "gemma", + "gl", + "pollster", +] + [[package]] name = "gemmatelnet" version = "0.1.0" @@ -1680,9 +1787,18 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gl" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404" +dependencies = [ + "gl_generator", +] [[package]] name = "gl_generator" @@ -1747,7 +1863,7 @@ dependencies = [ "bitflags 2.6.0", "cfg_aliases 0.1.1", "cgl", - "core-foundation", + "core-foundation 0.9.4", "dispatch", "glutin_egl_sys 0.6.0", "glutin_glx_sys 0.5.0", @@ -1757,7 +1873,7 @@ dependencies = [ "objc2 0.4.1", "once_cell", "raw-window-handle 0.5.2", - "wayland-sys 0.31.4", + "wayland-sys 0.31.5", "windows-sys 0.48.0", "x11-dl", ] @@ -1771,7 +1887,7 @@ dependencies = [ "bitflags 2.6.0", "cfg_aliases 0.2.1", "cgl", - "core-foundation", + "core-foundation 0.9.4", "dispatch", "glutin_egl_sys 0.7.0", "glutin_glx_sys 0.6.0", @@ -1782,7 +1898,7 @@ dependencies = [ "objc2-foundation", "once_cell", "raw-window-handle 0.6.2", - "wayland-sys 0.31.4", + "wayland-sys 0.31.5", "windows-sys 0.52.0", "x11-dl", ] @@ -1909,7 +2025,7 @@ checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -1931,6 +2047,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "hassle-rs" version = "0.11.0" @@ -2050,14 +2172,14 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae" dependencies = [ "bytemuck", "byteorder-lite", "num-traits", - "png 0.17.13", + "png 0.17.14", ] [[package]] @@ -2066,7 +2188,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8addafa5cecf0515812226e806913814e02ce38d10215778082af5174abe5669" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "cfg-if", "imgui-sys", "mint", @@ -2111,17 +2233,17 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4419f022e55cc63d5bbd6b44b71e1d226b9c9480a47824c706e9d54e5c40c5eb" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", ] [[package]] name = "indexmap" -version = "2.2.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.0", ] [[package]] @@ -2171,9 +2293,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -2189,9 +2311,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -2227,9 +2349,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "f0b21006cd1874ae9e650973c565615676dc4a274c965bb0a73796dac838ce4f" [[package]] name = "libloading" @@ -2243,13 +2365,13 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.7", ] [[package]] @@ -2306,9 +2428,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -2367,11 +2489,11 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", "simd-adler32", ] @@ -2399,7 +2521,7 @@ version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bit-set", "bitflags 2.6.0", "cfg_aliases 0.1.1", @@ -2420,7 +2542,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "jni-sys", "ndk-sys 0.4.1+23.1.7779620", "num_enum 0.5.11", @@ -2438,7 +2560,7 @@ dependencies = [ "jni-sys", "log", "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.2", + "num_enum 0.7.3", "raw-window-handle 0.5.2", "raw-window-handle 0.6.2", "thiserror", @@ -2454,7 +2576,7 @@ dependencies = [ "jni-sys", "log", "ndk-sys 0.6.0+11769913", - "num_enum 0.7.2", + "num_enum 0.7.3", "raw-window-handle 0.6.2", "thiserror", ] @@ -2527,7 +2649,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -2540,7 +2662,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", - "bitflags 1.2.1", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -2616,11 +2738,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.7.2", + "num_enum_derive 0.7.3", ] [[package]] @@ -2637,14 +2759,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -2897,24 +3019,24 @@ dependencies = [ [[package]] name = "object" -version = "0.36.2" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "orbclient" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" dependencies = [ "libredox", ] @@ -2931,9 +3053,9 @@ dependencies = [ [[package]] name = "owned_ttf_parser" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90" +checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" dependencies = [ "ttf-parser", ] @@ -2962,7 +3084,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -2996,7 +3118,7 @@ checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -3024,9 +3146,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "png" @@ -3034,7 +3156,7 @@ version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "crc32fast", "deflate", "miniz_oxide 0.3.7", @@ -3042,22 +3164,22 @@ dependencies = [ [[package]] name = "png" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.7.4", + "miniz_oxide 0.8.0", ] [[package]] name = "polling" -version = "3.7.2" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", @@ -3065,17 +3187,22 @@ dependencies = [ "pin-project-lite", "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] -name = "ppv-lite86" -version = "0.2.19" +name = "pollster" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2288c0e17cc8d342c712bb43a257a80ebffce59cdb33d5000d8348f3ec02528b" +checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ "zerocopy", - "zerocopy-derive", ] [[package]] @@ -3106,27 +3233,27 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.22.22", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" [[package]] name = "quick-xml" @@ -3140,18 +3267,18 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.34.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -3264,7 +3391,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", ] [[package]] @@ -3273,23 +3400,23 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", @@ -3299,9 +3426,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -3310,9 +3437,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "renderdoc-sys" @@ -3334,9 +3461,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -3401,7 +3528,7 @@ checksum = "70b31447ca297092c5a9916fc3b955203157b37c19ca8edde4f52e9843e602c7" dependencies = [ "ab_glyph", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "smithay-client-toolkit 0.18.1", "tiny-skia 0.11.4", ] @@ -3414,29 +3541,53 @@ checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" dependencies = [ "ab_glyph", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "smithay-client-toolkit 0.19.2", "tiny-skia 0.11.4", ] [[package]] -name = "serde" -version = "1.0.204" +name = "sdl2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "3b498da7d14d1ad6c839729bd4ad6fc11d90a57583605f3b4df2cd709a9cd380" +dependencies = [ + "bitflags 1.3.2", + "lazy_static", + "libc", + "raw-window-handle 0.6.2", + "sdl2-sys", +] + +[[package]] +name = "sdl2-sys" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951deab27af08ed9c6068b7b0d05a93c91f0a8eb16b6b816a5e73452a43521d3" +dependencies = [ + "cfg-if", + "libc", + "version-compare", +] + +[[package]] +name = "serde" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -3447,7 +3598,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -3482,6 +3633,12 @@ dependencies = [ "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -3527,7 +3684,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "calloop 0.10.6", "dlib", "lazy_static", @@ -3552,16 +3709,16 @@ dependencies = [ "cursor-icon", "libc", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "rustix", "thiserror", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "wayland-csd-frame", - "wayland-cursor 0.31.5", + "wayland-cursor 0.31.6", "wayland-protocols 0.31.2", "wayland-protocols-wlr 0.2.0", - "wayland-scanner 0.31.4", + "wayland-scanner 0.31.5", "xkeysym", ] @@ -3577,16 +3734,16 @@ dependencies = [ "cursor-icon", "libc", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "rustix", "thiserror", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "wayland-csd-frame", - "wayland-cursor 0.31.5", - "wayland-protocols 0.32.3", - "wayland-protocols-wlr 0.3.3", - "wayland-scanner 0.31.4", + "wayland-cursor 0.31.6", + "wayland-protocols 0.32.4", + "wayland-protocols-wlr 0.3.4", + "wayland-scanner 0.31.5", "xkeysym", ] @@ -3660,9 +3817,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.71" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -3677,9 +3834,9 @@ checksum = "36ae8932fcfea38b7d3883ae2ab357b0d57a02caaa18ebb4f5ece08beaec4aa0" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", @@ -3699,22 +3856,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -3738,7 +3895,7 @@ dependencies = [ "arrayvec 0.5.2", "bytemuck", "cfg-if", - "png 0.17.13", + "png 0.17.14", "safe_arch", "tiny-skia-path 0.7.0", ] @@ -3750,7 +3907,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bytemuck", "cfg-if", "log", @@ -3795,9 +3952,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" @@ -3807,18 +3964,18 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -3840,7 +3997,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -3854,9 +4011,9 @@ dependencies = [ [[package]] name = "ttf-parser" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8686b91785aff82828ed725225925b33b4fde44c4bb15876e5f7c832724c420a" +checksum = "5902c5d130972a0000f60860bfbf46f7ca3db5391eddfedd1b8728bd9dc96c0e" [[package]] name = "type-map" @@ -3892,9 +4049,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -3907,15 +4064,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" @@ -3941,10 +4098,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] -name = "version_check" -version = "0.9.4" +name = "version-compare" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -3964,9 +4127,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -3975,24 +4138,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -4002,9 +4165,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4012,35 +4175,35 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wayland-backend" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" dependencies = [ "cc", "downcast-rs", "rustix", "scoped-tls", "smallvec", - "wayland-sys 0.31.4", + "wayland-sys 0.31.5", ] [[package]] @@ -4049,7 +4212,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "downcast-rs", "libc", "nix 0.24.3", @@ -4061,14 +4224,14 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" dependencies = [ "bitflags 2.6.0", "rustix", "wayland-backend", - "wayland-scanner 0.31.4", + "wayland-scanner 0.31.5", ] [[package]] @@ -4107,12 +4270,12 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef9489a8df197ebf3a8ce8a7a7f0a2320035c3743f3c1bd0bdbccf07ce64f95" +checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" dependencies = [ "rustix", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "xcursor", ] @@ -4122,7 +4285,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "wayland-client 0.29.5", "wayland-commons", "wayland-scanner 0.29.5", @@ -4136,20 +4299,20 @@ checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", - "wayland-scanner 0.31.4", + "wayland-client 0.31.6", + "wayland-scanner 0.31.5", ] [[package]] name = "wayland-protocols" -version = "0.32.3" +version = "0.32.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", - "wayland-scanner 0.31.4", + "wayland-client 0.31.6", + "wayland-scanner 0.31.5", ] [[package]] @@ -4160,22 +4323,22 @@ checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "wayland-protocols 0.31.2", - "wayland-scanner 0.31.4", + "wayland-scanner 0.31.5", ] [[package]] name = "wayland-protocols-plasma" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79f2d57c7fcc6ab4d602adba364bf59a5c24de57bd194486bf9b8360e06bfc4" +checksum = "8a0a41a6875e585172495f7a96dfa42ca7e0213868f4f15c313f7c33221a7eff" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", - "wayland-protocols 0.32.3", - "wayland-scanner 0.31.4", + "wayland-client 0.31.6", + "wayland-protocols 0.32.4", + "wayland-scanner 0.31.5", ] [[package]] @@ -4186,22 +4349,22 @@ checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "wayland-protocols 0.31.2", - "wayland-scanner 0.31.4", + "wayland-scanner 0.31.5", ] [[package]] name = "wayland-protocols-wlr" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953" +checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" dependencies = [ "bitflags 2.6.0", "wayland-backend", - "wayland-client 0.31.5", - "wayland-protocols 0.32.3", - "wayland-scanner 0.31.4", + "wayland-client 0.31.6", + "wayland-protocols 0.32.4", + "wayland-scanner 0.31.5", ] [[package]] @@ -4217,12 +4380,12 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.4" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" dependencies = [ "proc-macro2", - "quick-xml 0.34.0", + "quick-xml 0.36.2", "quote", ] @@ -4239,9 +4402,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.4" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" dependencies = [ "dlib", "log", @@ -4251,9 +4414,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -4281,12 +4444,12 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" +checksum = "2e5f07fb9bc8de2ddfe6b24a71a75430673fd679e568c48b52716cef1cfae923" dependencies = [ "block2 0.5.1", - "core-foundation", + "core-foundation 0.10.0", "home", "jni", "log", @@ -4309,7 +4472,7 @@ version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "cfg_aliases 0.1.1", "document-features", "js-sys", @@ -4333,7 +4496,7 @@ version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bit-vec", "bitflags 2.6.0", "cfg_aliases 0.1.1", @@ -4359,7 +4522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" dependencies = [ "android_system_properties", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "ash", "bitflags 2.6.0", "cfg_aliases 0.1.1", @@ -4428,11 +4591,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4500,7 +4663,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -4511,7 +4674,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -4796,9 +4959,9 @@ version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" dependencies = [ - "bitflags 1.2.1", + "bitflags 1.3.2", "cocoa 0.24.1", - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.22.3", "dispatch", "instant", @@ -4837,14 +5000,14 @@ dependencies = [ "bytemuck", "calloop 0.12.4", "cfg_aliases 0.1.1", - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.23.2", "cursor-icon", "icrate", "js-sys", "libc", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "ndk 0.8.0", "ndk-sys 0.5.0+25.2.9519653", "objc2 0.4.1", @@ -4862,7 +5025,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "wayland-backend", - "wayland-client 0.31.5", + "wayland-client 0.31.6", "wayland-protocols 0.31.2", "wayland-protocols-plasma 0.2.0", "web-sys", @@ -4888,13 +5051,13 @@ dependencies = [ "calloop 0.13.0", "cfg_aliases 0.2.1", "concurrent-queue", - "core-foundation", + "core-foundation 0.9.4", "core-graphics 0.23.2", "cursor-icon", "dpi", "js-sys", "libc", - "memmap2 0.9.4", + "memmap2 0.9.5", "ndk 0.9.0", "objc2 0.5.2", "objc2-app-kit", @@ -4914,9 +5077,9 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "wayland-backend", - "wayland-client 0.31.5", - "wayland-protocols 0.32.3", - "wayland-protocols-plasma 0.3.3", + "wayland-client 0.31.6", + "wayland-protocols 0.32.4", + "wayland-protocols-plasma 0.3.4", "web-sys", "web-time 1.1.0", "windows-sys 0.52.0", @@ -4934,6 +5097,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + [[package]] name = "wio" version = "0.2.2" @@ -5008,9 +5180,9 @@ checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" [[package]] name = "xcursor" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d491ee231a51ae64a5b762114c3ac2104b967aadba1de45c86ca42cf051513b7" +checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" [[package]] name = "xdg-home" @@ -5043,9 +5215,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" [[package]] name = "zbus" @@ -5103,7 +5275,7 @@ checksum = "709ab20fc57cb22af85be7b360239563209258430bccf38d8b979c5a2ae3ecce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", "zbus-lockstep", "zbus_xml", "zvariant", @@ -5115,10 +5287,10 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", "zvariant_utils", ] @@ -5164,7 +5336,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] [[package]] @@ -5186,10 +5358,10 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", "zvariant_utils", ] @@ -5201,5 +5373,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.79", ] diff --git a/Cargo.toml b/Cargo.toml index 6e96193..d4f6863 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["gemma", "gemmaegui", "gemmaimgui", "gemmatelnet" ] +members = ["gemma", "gemmaegui", "gemmaimgui", "gemmatelnet", "gemmasdl2" ] resolver = "2" [workspace.dependencies] @@ -14,10 +14,5 @@ egui = { version = "0.29" } eframe = { version = "0.29" } # IMGUI -glium = { version = "0.34.0" } -image = { version = "0.23" } -imgui = { version = "0.12.0" } -imgui-glium-renderer = { version = "0.12.0" } -imgui-winit-support = { version = "0.12.0" } -winit = { version = "0.27", features = ["x11", "mint"]} -copypasta = { version = "0.8" } + +# EXPERIMENT diff --git a/gemma/src/chip8/instructions.rs b/gemma/src/chip8/instructions.rs index 431197c..54d3c11 100644 --- a/gemma/src/chip8/instructions.rs +++ b/gemma/src/chip8/instructions.rs @@ -681,8 +681,6 @@ impl Chip8CpuInstructions { input.registers.poke(0xf, target); - - } Chip8CpuInstructions::SkpVx(x) => { // Ex9E - SKP Vx diff --git a/gemma/src/constants.rs b/gemma/src/constants.rs index b728112..53181b9 100644 --- a/gemma/src/constants.rs +++ b/gemma/src/constants.rs @@ -10,4 +10,5 @@ pub const CHIP8_KEYBOARD: [[u8; 4]; 4] = [ [0x04, 0x05, 0x06, 0x0D], [0x07, 0x08, 0x09, 0x0E], [0x0A, 0x00, 0x0B, 0x0F] -]; \ No newline at end of file +]; + diff --git a/gemmaimgui/Cargo.toml b/gemmaimgui/Cargo.toml index dcdaba3..719d87c 100644 --- a/gemmaimgui/Cargo.toml +++ b/gemmaimgui/Cargo.toml @@ -5,15 +5,15 @@ edition = "2021" [dependencies] gemma = { path = "../gemma" } -glium.workspace = true -image.workspace = true -imgui.workspace = true -imgui-glium-renderer.workspace = true -imgui-winit-support.workspace = true -winit.workspace = true pretty_env_logger.workspace = true -copypasta.workspace = true rand.workspace = true log.workspace = true chrono.workspace = true dimensioned.workspace = true +imgui-glium-renderer = { version = "0.12.0" } +imgui-winit-support = { version = "0.12.0" } +glium = { version = "0.34.0" } +image = { version = "0.23" } +imgui = { version = "0.12.0" } +winit = { version = "0.27", features = ["x11", "mint"]} +copypasta = { version = "0.8" } diff --git a/gemmasdl2/Cargo.toml b/gemmasdl2/Cargo.toml new file mode 100644 index 0000000..0028fbc --- /dev/null +++ b/gemmasdl2/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "gemmasdl2" +version = "0.1.0" +edition = "2021" + +[dependencies] +gemma = { path = "../gemma" } +egui_sdl2_platform = "0.3.0" +gl = "0.14" +egui = "0.27" +egui_glow = "0.27" + +pollster = "0.2" +anyhow = "1.0" diff --git a/gemmasdl2/src/bin/gemmasdl2.rs b/gemmasdl2/src/bin/gemmasdl2.rs new file mode 100644 index 0000000..facd2d8 --- /dev/null +++ b/gemmasdl2/src/bin/gemmasdl2.rs @@ -0,0 +1,133 @@ +mod support; +use std::{sync::Arc, time::Instant}; +use anyhow::Context; +use egui::TextBuffer; +use egui_glow::glow::{HasContext, COLOR_BUFFER_BIT}; +use egui_sdl2_platform::sdl2; +use sdl2::event::{Event, WindowEvent}; +use gemma::chip8::computer::Chip8Computer; +use support::timestep::TimeStep; +use crate::support::gemma_egui_support::GemmaEguiSupport; + +const SCREEN_WIDTH: u32 = 800; +const SCREEN_HEIGHT: u32 = 480; + +async fn run() -> anyhow::Result { + // Initialize SDL2 and video subsystem + let sdl = sdl2::init().map_err(|e| anyhow::anyhow!("Failed to create SDL context: {}", e))?; + let mut video = sdl.video().map_err(|e| anyhow::anyhow!("Failed to initialize SDL video subsystem: {}", e))?; + + + // Create SDL2 window and OpenGL context + let window = video.window("Window", SCREEN_WIDTH, SCREEN_HEIGHT) + .opengl() + .position_centered() + .build()?; + let _gl_context = window.gl_create_context().expect("Failed to create GL context"); + + // Load OpenGL functions + let gl = unsafe { + egui_glow::painter::Context::from_loader_function(|name| { + video.gl_get_proc_address(name) as *const _ + }) + }; + let mut painter = egui_glow::Painter::new(Arc::new(gl), "", None)?; + + // Setup Egui and SDL2 platform + let mut platform = egui_sdl2_platform::Platform::new(window.size())?; + let mut event_pump = sdl.event_pump().map_err(|e| anyhow::anyhow!("Failed to get SDL event pump: {}", e))?; + + // Initial settings + let mut color = [0.0, 0.0, 0.0, 1.0]; // Background color + let start_time = Instant::now(); + let mut timestep = TimeStep::new(); + + let mut computer = Chip8Computer::new(); + let mut is_running: bool = false; + computer.load_bytes_to_memory(0x200, &std::fs::read("resources/roms/3-corax+.ch8")?); + + // Main loop + 'main: loop { + // Update the Egui platform with the current time + platform.update_time(start_time.elapsed().as_secs_f64()); + + // Begin Egui frame + let ctx = platform.context(); + + if is_running { + computer.step_system(); + } + + egui::Window::new("Hello, world!").show(&ctx, |ui| { + GemmaEguiSupport::video_view(&computer, ui); + GemmaEguiSupport::memory_view(&computer, ui); + GemmaEguiSupport::registers_view(&computer, ui); + }); + + // Process Egui frame + let full_output = platform.end_frame(&mut video)?; + let paint_jobs = platform.tessellate(&full_output); + + // Clear the screen with the current color + unsafe { + painter.gl().clear_color(color[0], color[1], color[2], 1.0); + painter.gl().clear(COLOR_BUFFER_BIT); + } + + // Paint Egui outputs and update textures + let size = window.size(); + painter.paint_and_update_textures([size.0, size.1], 1.0, paint_jobs.as_slice(), &full_output.textures_delta); + window.gl_swap_window(); + + // Run the timestep logic + timestep.run_this(|_| {}); + + // Handle SDL2 events + for event in event_pump.poll_iter() { + match event { + Event::Quit { .. } + | Event::KeyDown { keycode: Some(sdl2::keyboard::Keycode::Escape), .. } => break 'main, + Event::Window { window_id, win_event, .. } if window_id == window.id() => { + if let WindowEvent::Close = win_event { + break 'main; + } + } + Event::KeyUp { keycode: Some(sdl2::keyboard::Keycode::F3), .. } => { + println!("USER PRESSED F3 -> running"); + is_running = true; + } + Event::KeyUp { keycode: Some(sdl2::keyboard::Keycode::F4), .. } => { + println!("USER PRESSED F4 -> stopping"); + is_running = false; + } + Event::KeyDown { keycode: Some(sdl2::keyboard::Keycode::F5), .. } => { + println!("USER PRESSED F5 -> Step"); + computer.step_system(); + } + Event::KeyDown { keycode: Some(sdl2::keyboard::Keycode::F6), .. } => { + println!("USER PRESSED F6 -> RESET"); + computer.reset(); + } + Event::ControllerButtonDown { which, .. } => { + println!("PLAYER {which} DOWN"); + } + Event::ControllerButtonDown { button, .. } => { + println!("BUTTON {:?}", button); + } + _ => platform.handle_event(&event, &sdl, &video), + } + } + + // Optionally log the frame rate + if let Some(fps) = timestep.frame_rate() { + println!("{:?} fps", fps); + } + } + + Ok(("").parse()?) +} + +fn main() -> anyhow::Result<()> { + pollster::block_on(run())?; + Ok(()) +} diff --git a/gemmasdl2/src/bin/support/gemma_egui_support.rs b/gemmasdl2/src/bin/support/gemma_egui_support.rs new file mode 100644 index 0000000..a9b44cd --- /dev/null +++ b/gemmasdl2/src/bin/support/gemma_egui_support.rs @@ -0,0 +1,146 @@ +use std::fs::read_dir; +use std::ops::Index; +use std::path::{Display, PathBuf}; +use std::thread; +use std::time::Duration; +use egui::{Align, Color32, ComboBox, Direction, Pos2, Response, TextBuffer}; +use egui::Rect; +use egui::Vec2; +use egui::Ui; +use egui::WidgetType::SelectableLabel; +use crate::Chip8Computer; + +const CELL_WIDTH: f32 = 5.0; +const CELL_HEIGHT: f32 = 5.0; + +pub struct EGuiFileList {} +impl EGuiFileList { + pub fn display_path(root: PathBuf, selected_filename: &mut String, ui: &mut Ui) { + let mut working_filename = selected_filename.clone(); + ui.with_layout(egui::Layout::left_to_right(egui::Align::TOP), |ui| { + // ui.label(format!("Displaying {}", root.to_str().unwrap_or("Unable to Load Path"))); + ComboBox::from_label("Select ROM") + .selected_text(selected_filename.clone()) + .show_ui(ui, |ui| { + + let mut sorted_options = vec![]; + for option in read_dir(root.as_path()).unwrap() { + let to_push = option.unwrap().file_name().into_string().unwrap_or( String::new()); + sorted_options.push(to_push); + } + + sorted_options.sort(); + for item in sorted_options { + // Add each option to the ComboBox + if ui.selectable_label(selected_filename.eq(&item.as_str()), item.clone()).clicked() + { + *selected_filename = item; + } + } + }); + // Display the selected option + }); + } +} + +pub struct GemmaEguiSupport {} + +impl GemmaEguiSupport { + pub fn controls_view(mut system: &mut Chip8Computer, ui: &mut Ui) { + ui.with_layout(egui::Layout::left_to_right(egui::Align::TOP), |ui| { + if ui.button("Start").clicked() { + println!("Start"); + // state.is_running = true; + } + if ui.button("Step").clicked() { + system.step_system(); + } + + if ui.button("Stop").clicked() { + println!("STOP"); + // state.is_running = false; + } + if ui.button("Reset").clicked() { + system.reset(); + // state.is_running = false; + } + }); + + // if ui.button(format!("Load {}", state.selected_rom_filename)).clicked() { + // load the bin... + // let read_bin = std::fs::read(PathBuf::from(format!("resources/roms/{}", state.selected_rom_filename))).unwrap(); + // ...then feed the system. + // system.load_bytes_to_memory(0x200, &read_bin); + // println!("Loaded {}", state.selected_rom_filename); + // } + // EGuiFileList::display_path(PathBuf::from("resources/roms"), &mut state.selected_rom_filename, ui); + + + + ui.with_layout(egui::Layout::left_to_right(Align::TOP), |ui| { + // ui.checkbox(&mut state.display_memory, "Display Memory"); + // ui.checkbox(&mut state.display_video, "Display Video"); + // ui.checkbox(&mut state.display_registers, "Display Registers"); + }); + } + + pub fn registers_view(system: &Chip8Computer, ui: &mut Ui) { + ui.label(format!("V0-7: {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} ", + system.registers.peek(0x00), + system.registers.peek(0x01), + system.registers.peek(0x02), + system.registers.peek(0x03), + system.registers.peek(0x04), + system.registers.peek(0x05), + system.registers.peek(0x06), + system.registers.peek(0x07) + )); + ui.label(format!("V8-F: {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} {:02x} ", + system.registers.peek(0x08), + system.registers.peek(0x09), + system.registers.peek(0x0A), + system.registers.peek(0x0B), + system.registers.peek(0x0C), + system.registers.peek(0x0D), + system.registers.peek(0x0E), + system.registers.peek(0x0F) + )); + ui.label(format!("PC: {:04x}\tI: {:04x}", system.registers.peek_pc(), system.registers.peek_i())); + } + + pub fn video_view(system: &Chip8Computer, ui: &mut Ui) { + let (_resp, painter) = ui.allocate_painter(Vec2::new(350.0, 165.0), egui::Sense::hover()); + for current_row in 0..32 { + for current_col in 0..64 { + let data_offset = current_row * 64 + current_col; + let x_offset = current_col as f32 * CELL_WIDTH; + let y_offset = current_row as f32 * CELL_HEIGHT; + let origin = Pos2::new(x_offset, y_offset); + let colour = if system.video_memory.peek(data_offset) { + Color32::RED + } else { + Color32::WHITE + }; + let rect = Rect::from_min_size(origin, Vec2::new(CELL_WIDTH, CELL_HEIGHT)); + painter.rect_filled(rect, 0.0, colour); + // println!("Cell {current_col}x{current_row} at {}x{} -> {}", + // origin.x, origin.y, + // system.video_memory.peek(data_offset)); + } + } + // thread::sleep(Duration::from_secs(1)); + } + + pub fn memory_view(system: &Chip8Computer, ui: &mut Ui) { + ui.label("Memory View"); + + for i in (0..=0x200).step_by(16) { + ui.with_layout(egui::Layout::left_to_right(egui::Align::TOP), |ui| { + for y in 0..16 { + ui.label(format!("{:02x}", system.memory.peek((i + y) as u16)).as_str()); + } + }); + } + ui.label("Should have **something** to adjust the 'memory window'"); + } +} diff --git a/gemmasdl2/src/bin/support/mod.rs b/gemmasdl2/src/bin/support/mod.rs new file mode 100644 index 0000000..646b816 --- /dev/null +++ b/gemmasdl2/src/bin/support/mod.rs @@ -0,0 +1,2 @@ +pub mod timestep; +pub mod gemma_egui_support; diff --git a/gemmasdl2/src/bin/support/timestep.rs b/gemmasdl2/src/bin/support/timestep.rs new file mode 100644 index 0000000..3c6327b --- /dev/null +++ b/gemmasdl2/src/bin/support/timestep.rs @@ -0,0 +1,95 @@ + +//! Gameplay speed control. It attempts to mimic/limit progression to +//! the 30 tics per second Doom used. + +use std::{fmt, time::Instant}; + +const MS_PER_UPDATE: f32 = 28.57; + +#[derive(Debug)] +pub struct TimeStep { + last_time: Instant, + delta_time: f32, + frame_count: u32, + frame_time: f32, + run_tics: u32, + last_tics: u32, + lag: f32, +} + +#[derive(Debug)] +pub struct FrameData { + pub tics: u32, + pub frames: u32, +} + +impl fmt::Display for FrameData { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_fmt(format_args!( + "FrameData (per-second):\n - tics: {}\n - fps: {}", + self.tics, self.frames + )) + } +} + +impl TimeStep { + pub fn new() -> TimeStep { + TimeStep { + last_time: Instant::now(), + delta_time: 0.0, + frame_count: 0, + frame_time: 0.0, + run_tics: 0, + last_tics: 0, + lag: 0.0, + } + } + + pub fn delta(&mut self) -> f32 { + let current_time = Instant::now(); + let delta = current_time.duration_since(self.last_time).as_micros() as f32 * 0.001; + self.last_time = current_time; + self.delta_time = delta; + delta + } + + /// Increments self time and returns current lag. `run_this` is run only for + /// `n` tics available. + pub fn run_this(&mut self, mut run_this: impl FnMut(f32)) { + let dt = self.delta(); + self.lag += dt; + while self.lag >= MS_PER_UPDATE { + run_this(dt); + self.lag -= MS_PER_UPDATE; + self.run_tics += 1; + } + } + + pub fn frame_rate(&mut self) -> Option { + self.frame_count += 1; + self.frame_time += self.delta_time; + let tmp; + let tmp2; + // per second + if self.frame_time >= 1000.0 { + tmp = self.frame_count; + tmp2 = self.last_tics; + self.frame_count = 0; + self.frame_time = 0.0; + self.last_tics = self.run_tics; + return Some(FrameData { + tics: self.run_tics - tmp2, + frames: tmp, + }); + } + + None + } +} + +impl Default for TimeStep { + // shutup clippy! + fn default() -> Self { + Self::new() + } +} \ No newline at end of file