diff --git a/Cargo.lock b/Cargo.lock index be7f29a..d7664db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,24 +21,6 @@ dependencies = [ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "andrew" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rusttype 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "android_glue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "ansi_term" version = "0.11.0" @@ -52,14 +34,6 @@ name = "anyhow" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "approx" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "arc-swap" version = "0.4.4" @@ -188,16 +162,6 @@ name = "bytes" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "calloop" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "cc" version = "1.0.50" @@ -380,18 +344,6 @@ dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "core-video-sys" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crc32fast" version = "1.2.0" @@ -508,24 +460,6 @@ dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "dlib" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "downcast-rs" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "dwrote" version = "0.9.0" @@ -541,6 +475,14 @@ name = "either" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "encoding_rs" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "env_logger" version = "0.7.1" @@ -863,11 +805,6 @@ dependencies = [ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "instant" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "iovec" version = "0.1.4" @@ -934,14 +871,6 @@ dependencies = [ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "line_drawing" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "lock_api" version = "0.3.3" @@ -997,25 +926,11 @@ dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "memchr" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "memmap" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "memoffset" version = "0.5.3" @@ -1064,17 +979,6 @@ dependencies = [ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "mio-named-pipes" version = "0.1.6" @@ -1135,7 +1039,7 @@ dependencies = [ "rmpv 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "skribo 0.0.1 (git+https://github.com/linebender/skribo)", - "skulpin 0.6.0 (git+https://github.com/kethku/skulpin?branch=winit_20)", + "skulpin 0.5.2", "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1151,18 +1055,6 @@ dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "nix" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "nodrop" version = "0.1.14" @@ -1281,14 +1173,6 @@ dependencies = [ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "ordered-float" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot" version = "0.10.0" @@ -1316,11 +1200,6 @@ name = "peeking_take_while" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "pin-project" version = "0.4.8" @@ -1552,25 +1431,6 @@ dependencies = [ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rusttype" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rusttype 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rusttype" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "stb_truetype 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "ryu" version = "1.0.2" @@ -1603,6 +1463,31 @@ name = "scopeguard" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "sdl2" +version = "0.33.0" +source = "git+https://github.com/Rust-SDL2/rust-sdl2#4ff7e9ce79c42360bf02f716818cdb3bfd057370" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "sdl2-sys 0.33.0 (git+https://github.com/Rust-SDL2/rust-sdl2)", +] + +[[package]] +name = "sdl2-sys" +version = "0.33.0" +source = "git+https://github.com/Rust-SDL2/rust-sdl2#4ff7e9ce79c42360bf02f716818cdb3bfd057370" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "unidiff 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "semver" version = "0.9.0" @@ -1723,8 +1608,7 @@ dependencies = [ [[package]] name = "skulpin" -version = "0.6.0" -source = "git+https://github.com/kethku/skulpin?branch=winit_20#2fda3cdc71903ddf756dc86f9c16bd42a7ef4959" +version = "0.5.2" dependencies = [ "ash 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", "cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1732,9 +1616,9 @@ dependencies = [ "metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "sdl2 0.33.0 (git+https://github.com/Rust-SDL2/rust-sdl2)", "skia-safe 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winit 0.20.0 (git+https://github.com/filnet/winit?branch=fix-panic-at-redraw-event-in-non-redraw-phase)", ] [[package]] @@ -1747,21 +1631,6 @@ name = "smallvec" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "smithay-client-toolkit" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "andrew 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-protocols 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "socket2" version = "0.3.11" @@ -1773,14 +1642,6 @@ dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "stb_truetype" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "strsim" version = "0.8.0" @@ -1940,6 +1801,16 @@ name = "unicode-xid" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unidiff" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "vcpkg" version = "0.2.8" @@ -1955,11 +1826,6 @@ name = "version_check" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "walkdir" version = "2.3.1" @@ -1975,61 +1841,6 @@ name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "wayland-client" -version = "0.23.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "calloop 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "downcast-rs 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "wayland-commons" -version = "0.23.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "wayland-protocols" -version = "0.23.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "wayland-scanner" -version = "0.23.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "wayland-sys" -version = "0.23.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "which" version = "3.1.0" @@ -2075,34 +1886,6 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "winit" -version = "0.20.0" -source = "git+https://github.com/filnet/winit?branch=fix-panic-at-redraw-event-in-non-redraw-phase#277e3527fe21d975b7fa8adf7b26040a2201ed27" -dependencies = [ - "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "core-video-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "dispatch 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "instant 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smithay-client-toolkit 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "x11-dl 2.18.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "winres" version = "0.1.11" @@ -2120,17 +1903,6 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "x11-dl" -version = "2.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "xattr" version = "0.2.2" @@ -2139,25 +1911,12 @@ dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "xdg" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "xml-rs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [metadata] "checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" "checksum ahash 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" "checksum aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "743ad5a418686aad3b87fd14c43badd828cf26e214a00f92a384291cf22e1811" -"checksum andrew 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9b7f09f89872c2b6b29e319377b1fbe91c6f5947df19a25596e121cf19a7b35e" -"checksum android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" -"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" "checksum arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff" "checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" "checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" @@ -2175,7 +1934,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" "checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" -"checksum calloop 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7aa2097be53a00de9e8fc349fea6d76221f398f5c4fa550d420669906962d160" "checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" "checksum cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" @@ -2197,7 +1955,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd" "checksum core-text 13.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db84654ad95211c082cf9795f6f83dc17d0ae6c985ac1b906369dc7384ed346d" "checksum core-text 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "131b3fd1f8bd5db9f2b398fa4fdb6008c64afc04d447c306ac2c7e98fba2a61d" -"checksum core-video-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8dc065219542086f72d1e9f7aadbbab0989e980263695d129d502082d063a9d0" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca" "checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac" @@ -2209,11 +1966,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum derive-new 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)" = "71f31892cd5c62e414316f2963c5689242c43d8e7bbcaaeca97e5e28c95d91d9" "checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" "checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" -"checksum dispatch 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" -"checksum dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a" -"checksum downcast-rs 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "52ba6eb47c2131e784a38b726eb54c1e1484904f013e576a25354d0124161af6" "checksum dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0bd1369e02db5e9b842a9b67bce8a2fcc043beafb2ae8a799dd482d46ea1ff0d" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" "checksum euclid 0.20.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f852d320142e1cceb15dccef32ed72a9970b83109d8a4e24b1ab04d579f485d" "checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" @@ -2249,7 +2004,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" "checksum image 0.22.4 (registry+https://github.com/rust-lang/crates.io-index)" = "53cb19c4e35102e5c6fb9ade5e0e236c5588424dc171a849af3141bf0b47768a" "checksum inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" -"checksum instant 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6c346c299e3fe8ef94dc10c2c0253d858a69aac1245157a3bf4125915d528caf" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" "checksum jpeg-decoder 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0256f0aec7352539102a9efbcb75543227b7ab1117e0f95450023af730128451" @@ -2259,7 +2013,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" "checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" -"checksum line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9" "checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b" "checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" "checksum lru 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237" @@ -2267,20 +2020,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum lyon_path 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0bcb57ac24a5428539e2c7c0592766d5933c937d703f430990c669c00de96862" "checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" "checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" "checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" -"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" "checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" "checksum metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f83c7dcc2038e12f68493fa3de44235df27b2497178e257185b4b5b5d028a1e4" "checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" "checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" -"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" "checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" -"checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" "checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" "checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" "checksum num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" @@ -2294,11 +2043,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum objc_exception 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" -"checksum ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" "checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc" "checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1" "checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" -"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" "checksum pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" "checksum pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" @@ -2327,13 +2074,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105" "checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rusttype 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5" -"checksum rusttype 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "14a911032fb5791ccbeec9f28fdcb9bf0983b81f227bafdfd227c658d0731c8a" "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" "checksum schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295" "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" "checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" +"checksum sdl2 0.33.0 (git+https://github.com/Rust-SDL2/rust-sdl2)" = "" +"checksum sdl2-sys 0.33.0 (git+https://github.com/Rust-SDL2/rust-sdl2)" = "" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" @@ -2347,12 +2094,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum skia-bindings 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3a38d82d2d3021c59e4a21f799f894bb59c8bf4161836896338ef50f8fe3cbc" "checksum skia-safe 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c02fb631f02d1a0a1e94c6ddd5a7200b7ef8b348c758e171da558fd72321015" "checksum skribo 0.0.1 (git+https://github.com/linebender/skribo)" = "" -"checksum skulpin 0.6.0 (git+https://github.com/kethku/skulpin?branch=winit_20)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" -"checksum smithay-client-toolkit 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "93960e8975909fcb14cc755de93af2149d8b8f4eb368315537d40cfd0f324054" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" -"checksum stb_truetype 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f77b6b07e862c66a9f3e62a07588fee67cd90a9135a2b942409f195507b4fb51" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" "checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" "checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" @@ -2371,17 +2115,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +"checksum unidiff 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3c152966fd1e11a44da1063caf6ca3c615cf5760603223015441df29a9653ae9" "checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" -"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -"checksum wayland-client 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "af1080ebe0efabcf12aef2132152f616038f2d7dcbbccf7b2d8c5270fe14bcda" -"checksum wayland-commons 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bb66b0d1a27c39bbce712b6372131c6e25149f03ffb0cd017cf8f7de8d66dbdb" -"checksum wayland-protocols 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6cc286643656742777d55dc8e70d144fa4699e426ca8e9d4ef454f4bf15ffcf9" -"checksum wayland-scanner 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93b02247366f395b9258054f964fe293ddd019c3237afba9be2ccbe9e1651c3d" -"checksum wayland-sys 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d94e89a86e6d6d7c7c9b19ebf48a03afaac4af6bc22ae570e9a24124b75358f4" "checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" @@ -2389,10 +2128,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum winit 0.20.0 (git+https://github.com/filnet/winit?branch=fix-panic-at-redraw-event-in-non-redraw-phase)" = "" "checksum winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ff4fb510bbfe5b8992ff15f77a2e6fe6cf062878f0eda00c0f44963a807ca5dc" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -"checksum x11-dl 2.18.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2bf981e3a5b3301209754218f962052d4d9ee97e478f4d26d4a6eced34c1fef8" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" -"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5" diff --git a/Cargo.toml b/Cargo.toml index e090af8..b02e6cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ euclid = "0.20.7" font-kit = "0.5.0" skribo = { git = "https://github.com/linebender/skribo" } lru = "0.4.3" -skulpin = { git = "https://github.com/kethku/skulpin", branch = "winit_20" } +skulpin = { path = "../skulpin" } derive-new = "0.5" rmpv = "0.4.4" rust-embed = { version = "5.2.0", features = ["debug-embed"] } diff --git a/src/bridge/keybindings.rs b/src/bridge/keybindings.rs index 727fa3d..810f5cb 100644 --- a/src/bridge/keybindings.rs +++ b/src/bridge/keybindings.rs @@ -1,7 +1,8 @@ use log::trace; -use skulpin::winit::event::{ElementState, KeyboardInput, ModifiersState, VirtualKeyCode}; +// use skulpin::winit::event::{ElementState, KeyboardInput, ModifiersState, VirtualKeyCode}; +use skulpin::sdl2::keyboard::{Keycode, Mod}; -fn parse_keycode(keycode: VirtualKeyCode) -> Option<(&'static str, bool)> { +fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { macro_rules! unsupported_key { ($name: ident) => {{ if cfg!(debug_assertions) { @@ -11,228 +12,262 @@ fn parse_keycode(keycode: VirtualKeyCode) -> Option<(&'static str, bool)> { }}; } + // Documentation: https://www.libsdl.org/release/SDL-1.2.15/docs/html/sdlkey.html match keycode { - VirtualKeyCode::Key1 => Some(("1", false)), - VirtualKeyCode::Key2 => Some(("2", false)), - VirtualKeyCode::Key3 => Some(("3", false)), - VirtualKeyCode::Key4 => Some(("4", false)), - VirtualKeyCode::Key5 => Some(("5", false)), - VirtualKeyCode::Key6 => Some(("6", false)), - VirtualKeyCode::Key7 => Some(("7", false)), - VirtualKeyCode::Key8 => Some(("8", false)), - VirtualKeyCode::Key9 => Some(("9", false)), - VirtualKeyCode::Key0 => Some(("0", false)), - VirtualKeyCode::A => Some(("a", false)), - VirtualKeyCode::B => Some(("b", false)), - VirtualKeyCode::C => Some(("c", false)), - VirtualKeyCode::D => Some(("d", false)), - VirtualKeyCode::E => Some(("e", false)), - VirtualKeyCode::F => Some(("f", false)), - VirtualKeyCode::G => Some(("g", false)), - VirtualKeyCode::H => Some(("h", false)), - VirtualKeyCode::I => Some(("i", false)), - VirtualKeyCode::J => Some(("j", false)), - VirtualKeyCode::K => Some(("k", false)), - VirtualKeyCode::L => Some(("l", false)), - VirtualKeyCode::M => Some(("m", false)), - VirtualKeyCode::N => Some(("n", false)), - VirtualKeyCode::O => Some(("o", false)), - VirtualKeyCode::P => Some(("p", false)), - VirtualKeyCode::Q => Some(("q", false)), - VirtualKeyCode::R => Some(("r", false)), - VirtualKeyCode::S => Some(("s", false)), - VirtualKeyCode::T => Some(("t", false)), - VirtualKeyCode::U => Some(("u", false)), - VirtualKeyCode::V => Some(("v", false)), - VirtualKeyCode::W => Some(("w", false)), - VirtualKeyCode::X => Some(("x", false)), - VirtualKeyCode::Y => Some(("y", false)), - VirtualKeyCode::Z => Some(("z", false)), - VirtualKeyCode::Escape => Some(("ESC", true)), - VirtualKeyCode::F1 => Some(("F1", true)), - VirtualKeyCode::F2 => Some(("F2", true)), - VirtualKeyCode::F3 => Some(("F3", true)), - VirtualKeyCode::F4 => Some(("F4", true)), - VirtualKeyCode::F5 => Some(("F5", true)), - VirtualKeyCode::F6 => Some(("F6", true)), - VirtualKeyCode::F7 => Some(("F7", true)), - VirtualKeyCode::F8 => Some(("F8", true)), - VirtualKeyCode::F9 => Some(("F9", true)), - VirtualKeyCode::F10 => Some(("F10", true)), - VirtualKeyCode::F11 => Some(("F11", true)), - VirtualKeyCode::F12 => Some(("F12", true)), - VirtualKeyCode::F13 => Some(("F13", true)), - VirtualKeyCode::F14 => Some(("F14", true)), - VirtualKeyCode::F15 => Some(("F15", true)), - VirtualKeyCode::F16 => Some(("F16", true)), - VirtualKeyCode::F17 => Some(("F17", true)), - VirtualKeyCode::F18 => Some(("F18", true)), - VirtualKeyCode::F19 => Some(("F19", true)), - VirtualKeyCode::F20 => Some(("F20", true)), - VirtualKeyCode::F21 => Some(("F21", true)), - VirtualKeyCode::F22 => Some(("F22", true)), - VirtualKeyCode::F23 => Some(("F23", true)), - VirtualKeyCode::F24 => Some(("F24", true)), - VirtualKeyCode::Snapshot => unsupported_key!(Snapshot), - VirtualKeyCode::Scroll => unsupported_key!(Scroll), - VirtualKeyCode::Pause => unsupported_key!(Pause), - VirtualKeyCode::Insert => Some(("Insert", true)), - VirtualKeyCode::Home => Some(("Home", true)), - VirtualKeyCode::Delete => Some(("Delete", true)), - VirtualKeyCode::End => Some(("End", true)), - VirtualKeyCode::PageDown => Some(("PageDown", true)), - VirtualKeyCode::PageUp => Some(("PageUp", true)), - VirtualKeyCode::Left => Some(("Left", true)), - VirtualKeyCode::Up => Some(("Up", true)), - VirtualKeyCode::Right => Some(("Right", true)), - VirtualKeyCode::Down => Some(("Down", true)), - VirtualKeyCode::Back => Some(("BS", true)), - VirtualKeyCode::Return => Some(("Enter", true)), - VirtualKeyCode::Space => Some(("Space", true)), - VirtualKeyCode::Compose => unsupported_key!(Compose), - VirtualKeyCode::Caret => Some(("^", false)), - VirtualKeyCode::Numlock => unsupported_key!(Numlock), - VirtualKeyCode::Numpad0 => Some(("0", false)), - VirtualKeyCode::Numpad1 => Some(("1", false)), - VirtualKeyCode::Numpad2 => Some(("2", false)), - VirtualKeyCode::Numpad3 => Some(("3", false)), - VirtualKeyCode::Numpad4 => Some(("4", false)), - VirtualKeyCode::Numpad5 => Some(("5", false)), - VirtualKeyCode::Numpad6 => Some(("6", false)), - VirtualKeyCode::Numpad7 => Some(("7", false)), - VirtualKeyCode::Numpad8 => Some(("8", false)), - VirtualKeyCode::Numpad9 => Some(("9", false)), - // These next two are for Brazillian keyboards according to - // https://hg.mozilla.org/integration/mozilla-inbound/rev/28039c359ce8#l2.31 - // Mapping both to the same thing as firefox - VirtualKeyCode::AbntC1 => Some(("/", false)), - VirtualKeyCode::AbntC2 => Some((".", false)), - VirtualKeyCode::Add => Some(("+", true)), - VirtualKeyCode::Apostrophe => Some(("'", false)), - VirtualKeyCode::Apps => unsupported_key!(Apps), - VirtualKeyCode::At => Some(("@", false)), - VirtualKeyCode::Ax => unsupported_key!(Ax), - VirtualKeyCode::Backslash => Some(("Bslash", true)), - VirtualKeyCode::Calculator => unsupported_key!(Calculator), - VirtualKeyCode::Capital => unsupported_key!(Capital), - VirtualKeyCode::Colon => Some((":", false)), - VirtualKeyCode::Comma => Some((",", false)), - VirtualKeyCode::Convert => unsupported_key!(Convert), - VirtualKeyCode::Decimal => Some((".", false)), - VirtualKeyCode::Divide => Some(("/", false)), - VirtualKeyCode::Equals => Some(("=", false)), - VirtualKeyCode::Grave => Some(("`", false)), - VirtualKeyCode::Kana => unsupported_key!(Kana), - VirtualKeyCode::Kanji => unsupported_key!(Kanji), - VirtualKeyCode::LAlt => None, // Regular modifier key - VirtualKeyCode::LBracket => Some(("[", false)), - VirtualKeyCode::LControl => None, // Regular modifier key - VirtualKeyCode::LShift => None, // Regular modifier key - VirtualKeyCode::LWin => unsupported_key!(LWin), - VirtualKeyCode::Mail => unsupported_key!(Mail), - VirtualKeyCode::MediaSelect => unsupported_key!(MediaSelect), - VirtualKeyCode::MediaStop => unsupported_key!(MediaStop), - VirtualKeyCode::Minus => Some(("-", false)), - VirtualKeyCode::Multiply => Some(("*", false)), - VirtualKeyCode::Mute => unsupported_key!(Mute), - VirtualKeyCode::MyComputer => unsupported_key!(MyComputer), - VirtualKeyCode::NavigateForward => unsupported_key!(NavigateForward), - VirtualKeyCode::NavigateBackward => unsupported_key!(NavigateBackward), - VirtualKeyCode::NextTrack => unsupported_key!(NextTrack), - VirtualKeyCode::NoConvert => unsupported_key!(NoConvert), - VirtualKeyCode::NumpadComma => Some((",", false)), - VirtualKeyCode::NumpadEnter => Some(("Enter", true)), - VirtualKeyCode::NumpadEquals => Some(("=", false)), - VirtualKeyCode::OEM102 => unsupported_key!(OEM102), - VirtualKeyCode::Period => Some((".", false)), - VirtualKeyCode::PlayPause => unsupported_key!(PlayPause), - VirtualKeyCode::Power => unsupported_key!(Power), - VirtualKeyCode::PrevTrack => unsupported_key!(PrevTrack), - VirtualKeyCode::RAlt => None, // Regular modifier key - VirtualKeyCode::RBracket => Some(("]", false)), - VirtualKeyCode::RControl => None, // Regular modifier key - VirtualKeyCode::RShift => None, // Regular modifier key - VirtualKeyCode::RWin => unsupported_key!(RWin), - VirtualKeyCode::Semicolon => Some((";", false)), - VirtualKeyCode::Slash => Some(("/", false)), - VirtualKeyCode::Sleep => unsupported_key!(Sleep), - VirtualKeyCode::Stop => unsupported_key!(Stop), - VirtualKeyCode::Subtract => Some(("-", false)), - VirtualKeyCode::Sysrq => unsupported_key!(Sysrq), - VirtualKeyCode::Tab => Some(("Tab", true)), - VirtualKeyCode::Underline => unsupported_key!(Underline), - VirtualKeyCode::Unlabeled => unsupported_key!(Unlabeled), - VirtualKeyCode::VolumeDown => unsupported_key!(VolumeDown), - VirtualKeyCode::VolumeUp => unsupported_key!(VolumeUp), - VirtualKeyCode::Wake => unsupported_key!(Wake), - VirtualKeyCode::WebBack => unsupported_key!(WebBack), - VirtualKeyCode::WebFavorites => unsupported_key!(WebFavorites), - VirtualKeyCode::WebForward => unsupported_key!(WebForward), - VirtualKeyCode::WebHome => unsupported_key!(WebHome), - VirtualKeyCode::WebRefresh => unsupported_key!(WebRefresh), - VirtualKeyCode::WebSearch => unsupported_key!(WebSearch), - VirtualKeyCode::WebStop => unsupported_key!(WebStop), - VirtualKeyCode::Yen => Some(("¥", false)), - VirtualKeyCode::Copy => unsupported_key!(Copy), - VirtualKeyCode::Paste => unsupported_key!(Paste), - VirtualKeyCode::Cut => unsupported_key!(Cut), + Keycode::Backspace => Some(("BS", true)), + Keycode::Tab => Some((" ", false)), + Keycode::Return => Some(("\n", false)), + Keycode::Escape => Some(("ESC", true)), + Keycode::Space => Some((" ", true)), + Keycode::Exclaim => Some(("!", false)), + Keycode::Quotedbl => Some(("\"", false)), + Keycode::Hash => Some(("#", false)), + Keycode::Dollar => Some(("$", false)), + Keycode::Ampersand => Some(("&", false)), + Keycode::Quote => Some(("'", false)), + Keycode::LeftParen => Some(("(", false)), + Keycode::RightParen => Some((")", false)), + Keycode::Asterisk => Some(("*", false)), + Keycode::Plus => Some(("+", false)), + Keycode::Comma => Some((",", false)), + Keycode::Minus => Some(("-", false)), + Keycode::Period => Some((".", false)), + Keycode::Slash => Some(("/", false)), + Keycode::Num0 => Some(("0", false)), + Keycode::Num1 => Some(("1", false)), + Keycode::Num2 => Some(("2", false)), + Keycode::Num3 => Some(("3", false)), + Keycode::Num4 => Some(("4", false)), + Keycode::Num5 => Some(("5", false)), + Keycode::Num6 => Some(("6", false)), + Keycode::Num7 => Some(("7", false)), + Keycode::Num8 => Some(("8", false)), + Keycode::Num9 => Some(("9", false)), + Keycode::Colon => Some((":", false)), + Keycode::Semicolon => Some((";", false)), + Keycode::Less => Some(("lt", true)), + Keycode::Equals => Some(("=", false)), + Keycode::Greater => Some(("gt", true)), + Keycode::Question => Some(("?", false)), + Keycode::At => Some(("@", false)), + Keycode::LeftBracket => Some(("[", false)), + Keycode::Backslash => Some(("\\", false)), + Keycode::RightBracket => Some(("]", false)), + Keycode::Caret => Some(("^", false)), + Keycode::Underscore => Some(("_", false)), + Keycode::Backquote => Some(("`", false)), + Keycode::A => Some(("a", false)), + Keycode::B => Some(("b", false)), + Keycode::C => Some(("c", false)), + Keycode::D => Some(("d", false)), + Keycode::E => Some(("e", false)), + Keycode::F => Some(("f", false)), + Keycode::G => Some(("g", false)), + Keycode::H => Some(("h", false)), + Keycode::I => Some(("i", false)), + Keycode::J => Some(("j", false)), + Keycode::K => Some(("k", false)), + Keycode::L => Some(("l", false)), + Keycode::M => Some(("m", false)), + Keycode::N => Some(("n", false)), + Keycode::O => Some(("o", false)), + Keycode::P => Some(("p", false)), + Keycode::Q => Some(("q", false)), + Keycode::R => Some(("r", false)), + Keycode::S => Some(("s", false)), + Keycode::T => Some(("t", false)), + Keycode::U => Some(("u", false)), + Keycode::V => Some(("v", false)), + Keycode::W => Some(("w", false)), + Keycode::X => Some(("x", false)), + Keycode::Y => Some(("y", false)), + Keycode::Z => Some(("z", false)), + Keycode::Delete => Some(("Delete", true)), + Keycode::CapsLock => unsupported_key!(CapsLock), + Keycode::F1 => Some(("F1", true)), + Keycode::F2 => Some(("F2", true)), + Keycode::F3 => Some(("F3", true)), + Keycode::F4 => Some(("F4", true)), + Keycode::F5 => Some(("F5", true)), + Keycode::F6 => Some(("F6", true)), + Keycode::F7 => Some(("F7", true)), + Keycode::F8 => Some(("F8", true)), + Keycode::F9 => Some(("F9", true)), + Keycode::F10 => Some(("F10", true)), + Keycode::F11 => Some(("F11", true)), + Keycode::F12 => Some(("F12", true)), + Keycode::PrintScreen => unsupported_key!(PrintScreen), + Keycode::ScrollLock => unsupported_key!(ScrollLock), + Keycode::Pause => unsupported_key!(Pause), + Keycode::Insert => Some(("Insert", true)), + Keycode::Home => Some(("Home", true)), + Keycode::PageUp => Some(("PageUp", true)), + Keycode::End => Some(("End", true)), + Keycode::PageDown => Some(("PageDown", true)), + Keycode::Right => Some(("Right", true)), + Keycode::Left => Some(("Left", true)), + Keycode::Down => Some(("Down", true)), + Keycode::Up => Some(("Up", true)), + Keycode::NumLockClear => unsupported_key!(NumLockClear), + Keycode::KpDivide => Some(("/", true)), + Keycode::KpMultiply => Some(("*", true)), + Keycode::KpMinus => Some(("-", true)), + Keycode::KpPlus => Some(("+", true)), + Keycode::KpEnter => Some(("\n", true)), + Keycode::Kp0 => Some(("0", false)), + Keycode::Kp1 => Some(("1", false)), + Keycode::Kp2 => Some(("2", false)), + Keycode::Kp3 => Some(("3", false)), + Keycode::Kp4 => Some(("4", false)), + Keycode::Kp5 => Some(("5", false)), + Keycode::Kp6 => Some(("6", false)), + Keycode::Kp7 => Some(("7", false)), + Keycode::Kp8 => Some(("8", false)), + Keycode::Kp9 => Some(("9", false)), + Keycode::KpPeriod => Some((".", false)), + Keycode::Application => unsupported_key!(Application), + Keycode::Power => unsupported_key!(Power), + Keycode::KpEquals => Some(("=", false)), + Keycode::F13 => Some(("F13", true)), + Keycode::F14 => Some(("F14", true)), + Keycode::F15 => Some(("F15", true)), + Keycode::F16 => Some(("F16", true)), + Keycode::F17 => Some(("F17", true)), + Keycode::F18 => Some(("F18", true)), + Keycode::F19 => Some(("F19", true)), + Keycode::F20 => Some(("F20", true)), + Keycode::F21 => Some(("F21", true)), + Keycode::F22 => Some(("F22", true)), + Keycode::F23 => Some(("F23", true)), + Keycode::F24 => Some(("F24", true)), + Keycode::Execute => unsupported_key!(Execute), + Keycode::Help => unsupported_key!(Help), + Keycode::Menu => unsupported_key!(Menu), + Keycode::Select => unsupported_key!(Select), + Keycode::Stop => unsupported_key!(Stop), + Keycode::Again => unsupported_key!(Again), + Keycode::Undo => unsupported_key!(Undo), + Keycode::Cut => unsupported_key!(Cut), + Keycode::Copy => unsupported_key!(Copy), + Keycode::Paste => unsupported_key!(Paste), + Keycode::Find => unsupported_key!(Find), + Keycode::Mute => unsupported_key!(Mute), + Keycode::VolumeUp => unsupported_key!(VolumeUp), + Keycode::VolumeDown => unsupported_key!(VolumeDown), + Keycode::KpComma => unsupported_key!(KpComma), + Keycode::KpEqualsAS400 => unsupported_key!(KpEqualsAS400), + Keycode::AltErase => unsupported_key!(AltErase), + Keycode::Sysreq => unsupported_key!(Sysreq), + Keycode::Cancel => unsupported_key!(Cancel), + Keycode::Clear => unsupported_key!(Clear), + Keycode::Prior => unsupported_key!(Prior), + Keycode::Return2 => unsupported_key!(Return2), + Keycode::Separator => unsupported_key!(Separator), + Keycode::Out => unsupported_key!(Out), + Keycode::Oper => unsupported_key!(Oper), + Keycode::ClearAgain => unsupported_key!(ClearAgain), + Keycode::CrSel => unsupported_key!(CrSel), + Keycode::ExSel => unsupported_key!(ExSel), + Keycode::Kp00 => unsupported_key!(Kp00), + Keycode::Kp000 => unsupported_key!(Kp000), + Keycode::ThousandsSeparator => unsupported_key!(ThousandsSeparator), + Keycode::DecimalSeparator => unsupported_key!(DecimalSeparator), + Keycode::CurrencyUnit => unsupported_key!(CurrencyUnit), + Keycode::CurrencySubUnit => unsupported_key!(CurrencySubUnit), + Keycode::KpLeftParen => Some(("(", false)), + Keycode::KpRightParen => Some((")", false)), + Keycode::KpLeftBrace => Some(("[", false)), + Keycode::KpRightBrace => Some(("]", false)), + Keycode::KpTab => Some((" ", false)), + Keycode::KpBackspace => Some(("BS", true)), + Keycode::KpA => Some(("A", false)), + Keycode::KpB => Some(("B", false)), + Keycode::KpC => Some(("C", false)), + Keycode::KpD => Some(("D", false)), + Keycode::KpE => Some(("E", false)), + Keycode::KpF => Some(("F", false)), + Keycode::KpXor => unsupported_key!(KpXor), + Keycode::KpPower => Some(("^", false)), + Keycode::KpPercent => Some(("%", false)), + Keycode::KpLess => Some(("lt", true)), + Keycode::KpGreater => Some(("gt", true)), + Keycode::KpAmpersand => Some(("&", false)), + Keycode::KpDblAmpersand => unsupported_key!(KpDblAmpersand), + Keycode::KpVerticalBar => Some(("|", false)), + Keycode::KpDblVerticalBar => unsupported_key!(KpDblVerticalBar), + Keycode::KpColon => Some((":", false)), + Keycode::KpHash => Some(("#", false)), + Keycode::KpSpace => Some((" ", false)), + Keycode::KpAt => Some(("@", false)), + Keycode::KpExclam => Some(("!", false)), + Keycode::KpMemStore => unsupported_key!(KpMemStore), + Keycode::KpMemRecall => unsupported_key!(KpMemRecall), + Keycode::KpMemClear => unsupported_key!(KpMemClear), + Keycode::KpMemAdd => unsupported_key!(KpMemAdd), + Keycode::KpMemSubtract => unsupported_key!(KpMemSubtract), + Keycode::KpMemMultiply => unsupported_key!(KpMemMultiply), + Keycode::KpMemDivide => unsupported_key!(KpMemDivide), + Keycode::KpPlusMinus => unsupported_key!(KpPlusMinus), + Keycode::KpClear => unsupported_key!(KpClear), + Keycode::KpClearEntry => unsupported_key!(KpClearEntry), + Keycode::KpBinary => unsupported_key!(KpBinary), + Keycode::KpOctal => unsupported_key!(KpOctal), + Keycode::KpDecimal => unsupported_key!(KpDecimal), + Keycode::KpHexadecimal => unsupported_key!(KpHexadecimal), + Keycode::LCtrl => None, + Keycode::LShift => None, + Keycode::LAlt => None, + Keycode::LGui => None, + Keycode::RCtrl => None, + Keycode::RShift => None, + Keycode::RAlt => None, + Keycode::RGui => None, + Keycode::Mode => unsupported_key!(Mode), + Keycode::AudioNext => unsupported_key!(AudioNext), + Keycode::AudioPrev => unsupported_key!(AudioPrev), + Keycode::AudioStop => unsupported_key!(AudioStop), + Keycode::AudioPlay => unsupported_key!(AudioPlay), + Keycode::AudioMute => unsupported_key!(AudioMute), + Keycode::MediaSelect => unsupported_key!(MediaSelect), + Keycode::Www => unsupported_key!(Www), + Keycode::Mail => unsupported_key!(Mail), + Keycode::Calculator => unsupported_key!(Calculator), + Keycode::Computer => unsupported_key!(Computer), + Keycode::AcSearch => unsupported_key!(AcSearch), + Keycode::AcHome => unsupported_key!(AcHome), + Keycode::AcBack => unsupported_key!(AcBack), + Keycode::AcForward => unsupported_key!(AcForward), + Keycode::AcStop => unsupported_key!(AcStop), + Keycode::AcRefresh => unsupported_key!(AcRefresh), + Keycode::AcBookmarks => unsupported_key!(AcBookmarks), + Keycode::BrightnessDown => unsupported_key!(BrightnessDown), + Keycode::BrightnessUp => unsupported_key!(BrightnessUp), + Keycode::DisplaySwitch => unsupported_key!(DisplaySwitch), + Keycode::KbdIllumToggle =>unsupported_key!(KbdIllumToggle), + Keycode::KbdIllumDown => unsupported_key!(KbdIllumDown), + Keycode::KbdIllumUp => unsupported_key!(KbdIllumUp), + Keycode::Eject => unsupported_key!(Eject), + Keycode::Sleep => unsupported_key!(Sleep), } } -pub fn append_modifiers(modifiers: ModifiersState, keycode_text: &str, special: bool) -> String { +pub fn append_modifiers(modifiers: Mod, keycode_text: &str, special: bool) -> String { let mut result = keycode_text.to_string(); let mut special = special; - if modifiers.shift() { - result = match result.as_ref() { - "1" => "!".to_string(), - "2" => "@".to_string(), - "3" => "#".to_string(), - "4" => "$".to_string(), - "5" => "%".to_string(), - "6" => "^".to_string(), - "7" => "&".to_string(), - "8" => "*".to_string(), - "9" => "(".to_string(), - "0" => ")".to_string(), - "'" => "\"".to_string(), - "Bslash" => { - special = false; - "|".to_string() - }, - "," => { - special = true; - "lt".to_string() - }, - "=" => "+".to_string(), - "`" => "~".to_string(), - "[" => "{".to_string(), - "-" => "_".to_string(), - "." => ">".to_string(), - "]" => "}".to_string(), - ";" => ":".to_string(), - "/" => "?".to_string(), - other => { - special = true; - format!("S-{}", other) - } - }; - } - - if result == "<" { + if modifiers.contains(Mod::LSHIFTMOD) || modifiers.contains(Mod::RSHIFTMOD) { special = true; - result = "lt".to_string(); + result = format!("S-{}", result); } - - if modifiers.ctrl() { + if modifiers.contains(Mod::LCTRLMOD) || modifiers.contains(Mod::RCTRLMOD) { special = true; result = format!("C-{}", result); } - if modifiers.alt() { + if modifiers.contains(Mod::LALTMOD) || modifiers.contains(Mod::RALTMOD) { special = true; result = format!("M-{}", result); } - if modifiers.logo() { + if modifiers.contains(Mod::LGUIMOD) || modifiers.contains(Mod::RGUIMOD) { special = true; result = format!("D-{}", result); } @@ -244,20 +279,10 @@ pub fn append_modifiers(modifiers: ModifiersState, keycode_text: &str, special: result } -pub fn construct_keybinding_string(input: KeyboardInput) -> Option { - match input { - KeyboardInput { - state: ElementState::Pressed, - virtual_keycode: Some(keycode), - modifiers, - .. - } => { - if let Some((keycode_text, special)) = parse_keycode(keycode) { - Some(append_modifiers(modifiers, keycode_text, special)) - } else { - None - } - }, - _ => None +pub fn construct_keybinding_string(input: Keycode, modifiers: Mod) -> Option { + if let Some((keycode_text, special)) = parse_keycode(input) { + Some(append_modifiers(modifiers, keycode_text, special)) + } else { + None } } diff --git a/src/window.rs b/src/window.rs index 56e0b00..97250f5 100644 --- a/src/window.rs +++ b/src/window.rs @@ -1,10 +1,11 @@ -use std::sync::Arc; -use std::sync::atomic::Ordering; use std::time::{Duration, Instant}; use std::thread::sleep; -use image::{load_from_memory, GenericImageView, Pixel}; use log::{info, debug, trace, error}; +use skulpin::LogicalSize; +use skulpin::sdl2; +use skulpin::sdl2::EventPump; +use skulpin::{RendererBuilder, PresentMode, CoordinateSystem}; use crate::bridge::{construct_keybinding_string, BRIDGE, UiCommand}; use crate::renderer::Renderer; @@ -17,7 +18,7 @@ use crate::INITIAL_DIMENSIONS; #[folder = "assets/"] struct Asset; -fn handle_new_grid_size(new_size: LogicalSize, renderer: &Renderer) { +fn handle_new_grid_size(new_size: LogicalSize, renderer: &Renderer) { if new_size.width > 0.0 && new_size.height > 0.0 { let new_width = ((new_size.width + 1.0) / renderer.font_width) as i64; let new_height = ((new_size.height + 1.0) / renderer.font_height) as i64; @@ -27,14 +28,11 @@ fn handle_new_grid_size(new_size: LogicalSize, renderer: &Renderer) { } pub fn ui_loop() { - let sdl_context = sdl2::init()?; - let video_subsystem = sdl_context.video()?; + let sdl_context = sdl2::init().expect("Failed to initialize sdl2"); + let video_subsystem = sdl_context.video().expect("Failed to create sdl video subsystem"); let (width, height) = INITIAL_DIMENSIONS; - - let event_loop = EventLoop::<()>::with_user_event(); - let mut renderer = Renderer::new(); let logical_size = LogicalSize::new( (width as f32 * renderer.font_width) as f64, @@ -72,11 +70,13 @@ pub fn ui_loop() { let mut mouse_down = false; let mut mouse_pos = (0, 0); - let mut allow_next_char = false; - let mut next_char_modifiers = ModifiersState::empty(); + // let mut allow_next_char = false; + // let mut next_char_modifiers = ModifiersState::empty(); + + let mut title = "Neovide".to_string(); info!("Starting window event loop"); - let mut event_pump = sdl_context.event_pump()?; + let mut event_pump = sdl_context.event_pump().expect("Could not create sdl event pump"); loop { let frame_start = Instant::now(); @@ -94,152 +94,151 @@ pub fn ui_loop() { } }).is_err() { error!("Render failed. Closing"); - *control_flow = ControlFlow::Exit; - return; + break; } } - let elapsed = frame_start.since(); + let elapsed = frame_start.elapsed(); let frame_length = Duration::from_secs_f32(1.0 / 60.0); if elapsed < frame_length { sleep(frame_length - elapsed); } } - event_loop.run(move |event, _window_target, control_flow| { - trace!("Window Event: {:?}", event); - match event { - Event::NewEvents(StartCause::Init) | - Event::NewEvents(StartCause::ResumeTimeReached { .. }) => { - window.request_redraw() - }, - - Event::WindowEvent { - event: WindowEvent::CloseRequested, - .. - } => *control_flow = ControlFlow::Exit, - - Event::WindowEvent { - event: WindowEvent::Resized(new_size), - .. - } => { - handle_new_grid_size(new_size.to_logical(window.scale_factor()), &renderer) - }, - - Event::WindowEvent { - event: WindowEvent::KeyboardInput { - input, - .. - }, - .. - } => { - // Only interpret 'char' events when we get a previous event without a virtual - // keycode (which we ignore for KeyboardInput events). - // This is a hack so we don't lose a bunch of input events on Linux - if input.virtual_keycode == None { - allow_next_char = true; - }else { - allow_next_char = false; - } - next_char_modifiers = input.modifiers; - - if let Some(keybinding_string) = construct_keybinding_string(input) - .map(UiCommand::Keyboard) { - BRIDGE.queue_command(keybinding_string); - } - }, - - Event::WindowEvent { - event: WindowEvent::ReceivedCharacter(c), - .. - } => { - if allow_next_char { - next_char_modifiers.remove(ModifiersState::SHIFT); - let keybinding = super::bridge::append_modifiers(next_char_modifiers, &c.to_string(), false); - BRIDGE.queue_command(UiCommand::Keyboard(keybinding)); - } - }, - - Event::WindowEvent { - event: WindowEvent::CursorMoved { - position, - .. - }, - .. - } => { - let position: LogicalPosition = position.to_logical(window.scale_factor()); - let grid_y = (position.x / renderer.font_width as f64) as i64; - let grid_x = (position.y / renderer.font_height as f64) as i64; - let (old_x, old_y) = mouse_pos; - mouse_pos = (grid_x, grid_y); - if mouse_down && (old_x != grid_x || old_y != grid_y) { - BRIDGE.queue_command(UiCommand::Drag(grid_x, grid_y)); - } - } - - Event::WindowEvent { - event: WindowEvent::MouseInput { - state, - .. - }, - .. - } => { - let input_type = match (state, mouse_down) { - (ElementState::Pressed, false) => { - mouse_down = true; - Some("press") - }, - (ElementState::Released, true) => { - mouse_down = false; - Some("release") - }, - _ => None - }; - - if let Some(input_type) = input_type { - let (grid_x, grid_y) = mouse_pos; - BRIDGE.queue_command(UiCommand::MouseButton { action: input_type.to_string(), position: (grid_x, grid_y) }); - } - } - - Event::WindowEvent { - event: WindowEvent::MouseWheel { - delta: MouseScrollDelta::LineDelta(horizontal, vertical), - .. - }, - .. - } => { - let vertical_input_type = if vertical > 0.0 { - Some("up") - } else if vertical < 0.0 { - Some("down") - } else { - None - }; - - if let Some(input_type) = vertical_input_type { - BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); - } - - let horizontal_input_type = if horizontal > 0.0 { - Some("right") - } else if horizontal < 0.0 { - Some("left") - } else { - None - }; - - if let Some(input_type) = horizontal_input_type { - BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); - } - } - - Event::RedrawRequested { .. } => { - - *control_flow = ControlFlow::WaitUntil(frame_start + Duration::from_secs_f32(1.0 / 60.0)); - }, - - _ => {} - } - }) + // event_loop.run(move |event, _window_target, control_flow| { + // trace!("Window Event: {:?}", event); + // match event { + // Event::NewEvents(StartCause::Init) | + // Event::NewEvents(StartCause::ResumeTimeReached { .. }) => { + // window.request_redraw() + // }, + + // Event::WindowEvent { + // event: WindowEvent::CloseRequested, + // .. + // } => *control_flow = ControlFlow::Exit, + + // Event::WindowEvent { + // event: WindowEvent::Resized(new_size), + // .. + // } => { + // handle_new_grid_size(new_size.to_logical(window.scale_factor()), &renderer) + // }, + + // Event::WindowEvent { + // event: WindowEvent::KeyboardInput { + // input, + // .. + // }, + // .. + // } => { + // // Only interpret 'char' events when we get a previous event without a virtual + // // keycode (which we ignore for KeyboardInput events). + // // This is a hack so we don't lose a bunch of input events on Linux + // if input.virtual_keycode == None { + // allow_next_char = true; + // }else { + // allow_next_char = false; + // } + // next_char_modifiers = input.modifiers; + + // if let Some(keybinding_string) = construct_keybinding_string(input) + // .map(UiCommand::Keyboard) { + // BRIDGE.queue_command(keybinding_string); + // } + // }, + + // Event::WindowEvent { + // event: WindowEvent::ReceivedCharacter(c), + // .. + // } => { + // if allow_next_char { + // next_char_modifiers.remove(ModifiersState::SHIFT); + // let keybinding = super::bridge::append_modifiers(next_char_modifiers, &c.to_string(), false); + // BRIDGE.queue_command(UiCommand::Keyboard(keybinding)); + // } + // }, + + // Event::WindowEvent { + // event: WindowEvent::CursorMoved { + // position, + // .. + // }, + // .. + // } => { + // let position: LogicalPosition = position.to_logical(window.scale_factor()); + // let grid_y = (position.x / renderer.font_width as f64) as i64; + // let grid_x = (position.y / renderer.font_height as f64) as i64; + // let (old_x, old_y) = mouse_pos; + // mouse_pos = (grid_x, grid_y); + // if mouse_down && (old_x != grid_x || old_y != grid_y) { + // BRIDGE.queue_command(UiCommand::Drag(grid_x, grid_y)); + // } + // } + + // Event::WindowEvent { + // event: WindowEvent::MouseInput { + // state, + // .. + // }, + // .. + // } => { + // let input_type = match (state, mouse_down) { + // (ElementState::Pressed, false) => { + // mouse_down = true; + // Some("press") + // }, + // (ElementState::Released, true) => { + // mouse_down = false; + // Some("release") + // }, + // _ => None + // }; + + // if let Some(input_type) = input_type { + // let (grid_x, grid_y) = mouse_pos; + // BRIDGE.queue_command(UiCommand::MouseButton { action: input_type.to_string(), position: (grid_x, grid_y) }); + // } + // } + + // Event::WindowEvent { + // event: WindowEvent::MouseWheel { + // delta: MouseScrollDelta::LineDelta(horizontal, vertical), + // .. + // }, + // .. + // } => { + // let vertical_input_type = if vertical > 0.0 { + // Some("up") + // } else if vertical < 0.0 { + // Some("down") + // } else { + // None + // }; + + // if let Some(input_type) = vertical_input_type { + // BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); + // } + + // let horizontal_input_type = if horizontal > 0.0 { + // Some("right") + // } else if horizontal < 0.0 { + // Some("left") + // } else { + // None + // }; + + // if let Some(input_type) = horizontal_input_type { + // BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); + // } + // } + + // Event::RedrawRequested { .. } => { + + // *control_flow = ControlFlow::WaitUntil(frame_start + Duration::from_secs_f32(1.0 / 60.0)); + // }, + + // _ => {} + // } + // }) }