From fef5d56106d1b4abc0d3247237d2cff5866fd254 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Mon, 10 Feb 2020 19:41:44 -0800 Subject: [PATCH 01/21] progress --- src/window.rs | 99 ++++++++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 45 deletions(-) diff --git a/src/window.rs b/src/window.rs index c362202..56e0b00 100644 --- a/src/window.rs +++ b/src/window.rs @@ -1,13 +1,9 @@ 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 skulpin::{CoordinateSystem, RendererBuilder, PresentMode}; -use skulpin::winit::dpi::{LogicalSize, LogicalPosition}; -use skulpin::winit::event::{ElementState, Event, MouseScrollDelta, StartCause, WindowEvent, ModifiersState}; -use skulpin::winit::event_loop::{ControlFlow, EventLoop}; -use skulpin::winit::window::{Icon, WindowBuilder}; use log::{info, debug, trace, error}; use crate::bridge::{construct_keybinding_string, BRIDGE, UiCommand}; @@ -31,34 +27,37 @@ 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 (width, height) = INITIAL_DIMENSIONS; + + let event_loop = EventLoop::<()>::with_user_event(); let mut renderer = Renderer::new(); - let (width, height) = INITIAL_DIMENSIONS; let logical_size = LogicalSize::new( (width as f32 * renderer.font_width) as f64, (height as f32 * renderer.font_height + 1.0) as f64 ); - let icon = { - let icon_data = Asset::get("nvim.ico").expect("Failed to read icon data"); - let icon = load_from_memory(&icon_data).expect("Failed to parse icon data"); - let (width, height) = icon.dimensions(); - let mut rgba = Vec::with_capacity((width * height) as usize * 4); - for (_, _, pixel) in icon.pixels() { - rgba.extend_from_slice(&pixel.to_rgba().0); - } - Icon::from_rgba(rgba, width, height).expect("Failed to create icon object") - }; - info!("icon created"); - - let mut title = "Neovide".to_string(); - let window = Arc::new(WindowBuilder::new() - .with_title(&title) - .with_inner_size(logical_size) - .with_window_icon(Some(icon)) - .build(&event_loop) - .expect("Failed to create window")); + // let icon = { + // let icon_data = Asset::get("nvim.ico").expect("Failed to read icon data"); + // let icon = load_from_memory(&icon_data).expect("Failed to parse icon data"); + // let (width, height) = icon.dimensions(); + // let mut rgba = Vec::with_capacity((width * height) as usize * 4); + // for (_, _, pixel) in icon.pixels() { + // rgba.extend_from_slice(&pixel.to_rgba().0); + // } + // Icon::from_rgba(rgba, width, height).expect("Failed to create icon object") + // }; + // info!("icon created"); + + let mut window = video_subsystem.window("Neovide", width, height) + .position_centered() + .vulkan() + .build() + .expect("Failed to create window"); info!("window created"); let mut skulpin_renderer = RendererBuilder::new() @@ -77,6 +76,36 @@ pub fn ui_loop() { let mut next_char_modifiers = ModifiersState::empty(); info!("Starting window event loop"); + let mut event_pump = sdl_context.event_pump()?; + loop { + let frame_start = Instant::now(); + + let editor_title = { EDITOR.lock().title.clone() }; + if title != editor_title { + title = editor_title; + window.set_title(&title); + } + + if REDRAW_SCHEDULER.should_draw() || SETTINGS.get("no_idle").read_bool() { + debug!("Render Triggered"); + if skulpin_renderer.draw(&window, |canvas, coordinate_system_helper| { + if renderer.draw(canvas, coordinate_system_helper) { + handle_new_grid_size(window.inner_size().to_logical(window.scale_factor()), &renderer) + } + }).is_err() { + error!("Render failed. Closing"); + *control_flow = ControlFlow::Exit; + return; + } + } + + let elapsed = frame_start.since(); + 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 { @@ -206,26 +235,6 @@ pub fn ui_loop() { } Event::RedrawRequested { .. } => { - let frame_start = Instant::now(); - - let editor_title = { EDITOR.lock().title.clone() }; - if title != editor_title { - title = editor_title; - window.set_title(&title); - } - - if REDRAW_SCHEDULER.should_draw() || SETTINGS.get("no_idle").read_bool() { - debug!("Render Triggered"); - if skulpin_renderer.draw(&window, |canvas, coordinate_system_helper| { - if renderer.draw(canvas, coordinate_system_helper) { - handle_new_grid_size(window.inner_size().to_logical(window.scale_factor()), &renderer) - } - }).is_err() { - error!("Render failed. Closing"); - *control_flow = ControlFlow::Exit; - return; - } - } *control_flow = ControlFlow::WaitUntil(frame_start + Duration::from_secs_f32(1.0 / 60.0)); }, From 215b98d971c198f2b0cfdc3bb761a8f3658ed7cc Mon Sep 17 00:00:00 2001 From: keith Date: Tue, 11 Feb 2020 10:08:58 -0800 Subject: [PATCH 02/21] keybinding progress --- Cargo.lock | 365 ++++------------------------- Cargo.toml | 2 +- src/bridge/keybindings.rs | 473 ++++++++++++++++++++------------------ src/window.rs | 301 ++++++++++++------------ 4 files changed, 450 insertions(+), 691 deletions(-) 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)); + // }, + + // _ => {} + // } + // }) } From c0abb29b2ca7afa356c779b639cca9b64088b1d6 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Tue, 11 Feb 2020 15:17:24 -0800 Subject: [PATCH 03/21] sdl2 build instructions --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ec77217..fa5c644 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,13 @@ Note: Neovide requires neovim version 0.4 or greater. ### Windows 1. Install the latest version of Rust. I recommend -2. Ensure graphics libraries are up to date. -3. `git clone https://github.com/Kethku/neovide` -4. `cd neovide` -5. `cargo build --release` -6. Copy `./target/release/neovide.exe` to a known location and enjoy. +2. Install CMake. I use chocolatey: `choco install cmake --installargs '"ADD_CMAKE_TO_PATH=System"' -y` +3. Install LLVM. I use chocolatey: `choco install llvm -y` +4. Ensure graphics libraries are up to date. +5. `git clone https://github.com/Kethku/neovide` +6. `cd neovide` +7. `cargo build --release` +8. Copy `./target/release/neovide.exe` to a known location and enjoy. ### Mac @@ -73,7 +75,7 @@ Note: Neovide requires neovim version 0.4 or greater. ### Linux -Instructions to build on Ubuntu +Note: Neovide has been successfully built on other destros but this reportedly works on ubuntu. 1. Install necessary dependencies From f25381530f86b2089de5666c5a6929d44444cb5f Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Wed, 12 Feb 2020 12:14:54 -0800 Subject: [PATCH 04/21] rendering, but wrong dpi and no input support/resizing --- src/bridge/keybindings.rs | 1 + src/window.rs | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/bridge/keybindings.rs b/src/bridge/keybindings.rs index 810f5cb..5c8d878 100644 --- a/src/bridge/keybindings.rs +++ b/src/bridge/keybindings.rs @@ -23,6 +23,7 @@ fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { Keycode::Quotedbl => Some(("\"", false)), Keycode::Hash => Some(("#", false)), Keycode::Dollar => Some(("$", false)), + Keycode::Percent => Some(("%", false)), Keycode::Ampersand => Some(("&", false)), Keycode::Quote => Some(("'", false)), Keycode::LeftParen => Some(("(", false)), diff --git a/src/window.rs b/src/window.rs index 97250f5..8d1b9f2 100644 --- a/src/window.rs +++ b/src/window.rs @@ -5,6 +5,7 @@ use log::{info, debug, trace, error}; use skulpin::LogicalSize; use skulpin::sdl2; use skulpin::sdl2::EventPump; +use skulpin::sdl2::event::Event; use skulpin::{RendererBuilder, PresentMode, CoordinateSystem}; use crate::bridge::{construct_keybinding_string, BRIDGE, UiCommand}; @@ -19,9 +20,9 @@ use crate::INITIAL_DIMENSIONS; struct Asset; 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; + if new_size.width > 0 && new_size.height > 0 { + let new_width = ((new_size.width + 1) as f32 / renderer.font_width) as i64; + let new_height = ((new_size.height + 1) as f32 / renderer.font_height) as i64; // Add 1 here to make sure resizing doesn't change the grid size on startup BRIDGE.queue_command(UiCommand::Resize { width: new_width as i64, height: new_height as i64 }); } @@ -35,8 +36,8 @@ pub fn ui_loop() { let mut renderer = Renderer::new(); let logical_size = LogicalSize::new( - (width as f32 * renderer.font_width) as f64, - (height as f32 * renderer.font_height + 1.0) as f64 + (width as f32 * renderer.font_width) as u32, + (height as f32 * renderer.font_height + 1.0) as u32 ); // let icon = { @@ -51,7 +52,7 @@ pub fn ui_loop() { // }; // info!("icon created"); - let mut window = video_subsystem.window("Neovide", width, height) + let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) .position_centered() .vulkan() .build() @@ -77,7 +78,7 @@ pub fn ui_loop() { info!("Starting window event loop"); let mut event_pump = sdl_context.event_pump().expect("Could not create sdl event pump"); - loop { + 'running: loop { let frame_start = Instant::now(); let editor_title = { EDITOR.lock().title.clone() }; @@ -86,11 +87,18 @@ pub fn ui_loop() { window.set_title(&title); } + for event in event_pump.poll_iter() { + match event { + Event::Quit {..} => break 'running, + _ => {} + } + } + if REDRAW_SCHEDULER.should_draw() || SETTINGS.get("no_idle").read_bool() { debug!("Render Triggered"); if skulpin_renderer.draw(&window, |canvas, coordinate_system_helper| { if renderer.draw(canvas, coordinate_system_helper) { - handle_new_grid_size(window.inner_size().to_logical(window.scale_factor()), &renderer) + handle_new_grid_size(window.vulkan_drawable_size().into(), &renderer) } }).is_err() { error!("Render failed. Closing"); From b758f01b62db827692eb33f677c0dbf2e7d818a8 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 13 Feb 2020 17:06:50 -0800 Subject: [PATCH 05/21] working keybindings --- src/bridge/keybindings.rs | 16 ++++++++-------- src/window.rs | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/src/bridge/keybindings.rs b/src/bridge/keybindings.rs index 5c8d878..692cd65 100644 --- a/src/bridge/keybindings.rs +++ b/src/bridge/keybindings.rs @@ -2,7 +2,7 @@ use log::trace; // use skulpin::winit::event::{ElementState, KeyboardInput, ModifiersState, VirtualKeyCode}; use skulpin::sdl2::keyboard::{Keycode, Mod}; -fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { +pub fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { macro_rules! unsupported_key { ($name: ident) => {{ if cfg!(debug_assertions) { @@ -15,10 +15,10 @@ fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { // Documentation: https://www.libsdl.org/release/SDL-1.2.15/docs/html/sdlkey.html match keycode { Keycode::Backspace => Some(("BS", true)), - Keycode::Tab => Some((" ", false)), - Keycode::Return => Some(("\n", false)), - Keycode::Escape => Some(("ESC", true)), - Keycode::Space => Some((" ", true)), + Keycode::Tab => Some(("Tab", true)), + Keycode::Return => Some(("Enter", true)), + Keycode::Escape => Some(("Esc", true)), + Keycode::Space => Some((" ", false)), Keycode::Exclaim => Some(("!", false)), Keycode::Quotedbl => Some(("\"", false)), Keycode::Hash => Some(("#", false)), @@ -114,7 +114,7 @@ fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { Keycode::KpMultiply => Some(("*", true)), Keycode::KpMinus => Some(("-", true)), Keycode::KpPlus => Some(("+", true)), - Keycode::KpEnter => Some(("\n", true)), + Keycode::KpEnter => Some(("Enter", true)), Keycode::Kp0 => Some(("0", false)), Keycode::Kp1 => Some(("1", false)), Keycode::Kp2 => Some(("2", false)), @@ -179,7 +179,7 @@ fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { Keycode::KpRightParen => Some((")", false)), Keycode::KpLeftBrace => Some(("[", false)), Keycode::KpRightBrace => Some(("]", false)), - Keycode::KpTab => Some((" ", false)), + Keycode::KpTab => Some(("TAB", true)), Keycode::KpBackspace => Some(("BS", true)), Keycode::KpA => Some(("A", false)), Keycode::KpB => Some(("B", false)), @@ -248,7 +248,7 @@ fn parse_keycode(keycode: Keycode) -> Option<(&'static str, bool)> { Keycode::KbdIllumDown => unsupported_key!(KbdIllumDown), Keycode::KbdIllumUp => unsupported_key!(KbdIllumUp), Keycode::Eject => unsupported_key!(Eject), - Keycode::Sleep => unsupported_key!(Sleep), + Keycode::Sleep => unsupported_key!(Sleep) } } diff --git a/src/window.rs b/src/window.rs index 8d1b9f2..3400619 100644 --- a/src/window.rs +++ b/src/window.rs @@ -6,9 +6,10 @@ use skulpin::LogicalSize; use skulpin::sdl2; use skulpin::sdl2::EventPump; use skulpin::sdl2::event::Event; +use skulpin::sdl2::keyboard::Mod; use skulpin::{RendererBuilder, PresentMode, CoordinateSystem}; -use crate::bridge::{construct_keybinding_string, BRIDGE, UiCommand}; +use crate::bridge::{parse_keycode, append_modifiers, BRIDGE, UiCommand}; use crate::renderer::Renderer; use crate::redraw_scheduler::REDRAW_SCHEDULER; use crate::editor::EDITOR; @@ -54,6 +55,7 @@ pub fn ui_loop() { let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) .position_centered() + .allow_highdpi() .vulkan() .build() .expect("Failed to create window"); @@ -63,7 +65,7 @@ pub fn ui_loop() { .prefer_integrated_gpu() .use_vulkan_debug_layer(true) .present_mode_priority(vec![PresentMode::Mailbox, PresentMode::Immediate]) - .coordinate_system(CoordinateSystem::Logical) + .coordinate_system(CoordinateSystem::Physical) .build(&window) .expect("Failed to create renderer"); info!("renderer created"); @@ -90,12 +92,37 @@ pub fn ui_loop() { for event in event_pump.poll_iter() { match event { Event::Quit {..} => break 'running, + Event::KeyDown { + keycode: Some(keycode), + keymod: modifiers, + .. + } => { + dbg!(keycode); + if let Some((key_text, special)) = parse_keycode(keycode) { + let will_text_input = + !modifiers.contains(Mod::LCTRLMOD) && + !modifiers.contains(Mod::RCTRLMOD) && + !modifiers.contains(Mod::LALTMOD) && + !modifiers.contains(Mod::RALTMOD) && + !modifiers.contains(Mod::LGUIMOD) && + !modifiers.contains(Mod::RGUIMOD); + if will_text_input && !special { + break; + } + + BRIDGE.queue_command(UiCommand::Keyboard(append_modifiers(modifiers, key_text, special))); + } + }, + Event::TextInput { + text, + .. + } => BRIDGE.queue_command(UiCommand::Keyboard(text)), _ => {} } } + debug!("Render Triggered"); if REDRAW_SCHEDULER.should_draw() || SETTINGS.get("no_idle").read_bool() { - debug!("Render Triggered"); if skulpin_renderer.draw(&window, |canvas, coordinate_system_helper| { if renderer.draw(canvas, coordinate_system_helper) { handle_new_grid_size(window.vulkan_drawable_size().into(), &renderer) @@ -107,7 +134,7 @@ pub fn ui_loop() { } let elapsed = frame_start.elapsed(); - let frame_length = Duration::from_secs_f32(1.0 / 60.0); + let frame_length = Duration::from_secs_f32(1.0 / 30.0); if elapsed < frame_length { sleep(frame_length - elapsed); } From 3df33a963ead0aaf826f0da7937c654e0c991fd4 Mon Sep 17 00:00:00 2001 From: keith Date: Thu, 13 Feb 2020 23:26:12 -0800 Subject: [PATCH 06/21] ITS WORKING!!! --- Cargo.lock | 1 + Cargo.toml | 3 + src/bridge/keybindings.rs | 8 --- src/window.rs | 120 ++++++++++++++++---------------------- 4 files changed, 54 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d7664db..5e3cc59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1042,6 +1042,7 @@ dependencies = [ "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)", + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/Cargo.toml b/Cargo.toml index b02e6cd..ed3f1d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,9 @@ flexi_logger = { version = "0.14.6", default-features = false } anyhow = "1.0.26" parking_lot="0.10.0" +[target.'cfg(windows)'.dependencies] +winapi = "0.3.8" + [build-dependencies] winres = "0.1.11" diff --git a/src/bridge/keybindings.rs b/src/bridge/keybindings.rs index 692cd65..d448bd2 100644 --- a/src/bridge/keybindings.rs +++ b/src/bridge/keybindings.rs @@ -279,11 +279,3 @@ pub fn append_modifiers(modifiers: Mod, keycode_text: &str, special: bool) -> St result } - -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 3400619..abd0298 100644 --- a/src/window.rs +++ b/src/window.rs @@ -2,12 +2,12 @@ use std::time::{Duration, Instant}; use std::thread::sleep; use log::{info, debug, trace, error}; -use skulpin::LogicalSize; +use skulpin::{LogicalSize, PhysicalSize}; use skulpin::sdl2; use skulpin::sdl2::EventPump; -use skulpin::sdl2::event::Event; +use skulpin::sdl2::event::{Event, WindowEvent}; use skulpin::sdl2::keyboard::Mod; -use skulpin::{RendererBuilder, PresentMode, CoordinateSystem}; +use skulpin::{RendererBuilder, PresentMode, CoordinateSystem, dpis}; use crate::bridge::{parse_keycode, append_modifiers, BRIDGE, UiCommand}; use crate::renderer::Renderer; @@ -20,6 +20,15 @@ use crate::INITIAL_DIMENSIONS; #[folder = "assets/"] struct Asset; +#[cfg(windows)] +fn windows_fix_dpi() { + use winapi::um::winuser::SetProcessDpiAwarenessContext; + use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; + unsafe { + SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + } +} + fn handle_new_grid_size(new_size: LogicalSize, renderer: &Renderer) { if new_size.width > 0 && new_size.height > 0 { let new_width = ((new_size.width + 1) as f32 / renderer.font_width) as i64; @@ -36,10 +45,10 @@ pub fn ui_loop() { let (width, height) = INITIAL_DIMENSIONS; let mut renderer = Renderer::new(); - let logical_size = LogicalSize::new( - (width as f32 * renderer.font_width) as u32, - (height as f32 * renderer.font_height + 1.0) as u32 - ); + let logical_size = LogicalSize { + width: (width as f32 * renderer.font_width) as u32, + height: (height as f32 * renderer.font_height + 1.0) as u32 + }; // let icon = { // let icon_data = Asset::get("nvim.ico").expect("Failed to read icon data"); @@ -53,9 +62,12 @@ pub fn ui_loop() { // }; // info!("icon created"); + windows_fix_dpi(); + let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) .position_centered() .allow_highdpi() + .resizable() .vulkan() .build() .expect("Failed to create window"); @@ -65,7 +77,7 @@ pub fn ui_loop() { .prefer_integrated_gpu() .use_vulkan_debug_layer(true) .present_mode_priority(vec![PresentMode::Mailbox, PresentMode::Immediate]) - .coordinate_system(CoordinateSystem::Physical) + .coordinate_system(CoordinateSystem::Logical) .build(&window) .expect("Failed to create renderer"); info!("renderer created"); @@ -77,6 +89,8 @@ pub fn ui_loop() { // let mut next_char_modifiers = ModifiersState::empty(); let mut title = "Neovide".to_string(); + let mut previous_size = LogicalSize::new(&window).unwrap(); + let mut previous_dpis = dpis(&window).unwrap(); info!("Starting window event loop"); let mut event_pump = sdl_context.event_pump().expect("Could not create sdl event pump"); @@ -97,7 +111,6 @@ pub fn ui_loop() { keymod: modifiers, .. } => { - dbg!(keycode); if let Some((key_text, special)) = parse_keycode(keycode) { let will_text_input = !modifiers.contains(Mod::LCTRLMOD) && @@ -113,19 +126,44 @@ pub fn ui_loop() { BRIDGE.queue_command(UiCommand::Keyboard(append_modifiers(modifiers, key_text, special))); } }, + Event::MouseMotion { + + } Event::TextInput { text, .. - } => BRIDGE.queue_command(UiCommand::Keyboard(text)), + } => { + let text = if text == "<" { + String::from("") + } else { + text + }; + BRIDGE.queue_command(UiCommand::Keyboard(text)) + }, _ => {} } } + let new_size = LogicalSize::new(&window).unwrap(); + if previous_size != new_size { + handle_new_grid_size(new_size, &renderer); + previous_size = new_size; + } + + let new_dpis = dpis(&window).unwrap(); + if previous_dpis != new_dpis { + let physical_size = PhysicalSize::new(&window); + window.set_size( + (physical_size.width as f32 * new_dpis.0 / previous_dpis.0) as u32, + (physical_size.height as f32 * new_dpis.1 / previous_dpis.1) as u32).unwrap(); + previous_dpis = new_dpis; + } + debug!("Render Triggered"); if REDRAW_SCHEDULER.should_draw() || SETTINGS.get("no_idle").read_bool() { if skulpin_renderer.draw(&window, |canvas, coordinate_system_helper| { if renderer.draw(canvas, coordinate_system_helper) { - handle_new_grid_size(window.vulkan_drawable_size().into(), &renderer) + handle_new_grid_size(new_size, &renderer) } }).is_err() { error!("Render failed. Closing"); @@ -134,7 +172,7 @@ pub fn ui_loop() { } let elapsed = frame_start.elapsed(); - let frame_length = Duration::from_secs_f32(1.0 / 30.0); + let frame_length = Duration::from_secs_f32(1.0 / 60.0); if elapsed < frame_length { sleep(frame_length - elapsed); } @@ -143,57 +181,6 @@ pub fn ui_loop() { // 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, @@ -267,13 +254,6 @@ pub fn ui_loop() { // 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)); - // }, - - // _ => {} // } // }) } From b7d8333e9ae158051e274a2a5c4f40096912661c Mon Sep 17 00:00:00 2001 From: keith Date: Thu, 13 Feb 2020 23:29:13 -0800 Subject: [PATCH 07/21] use public skulpin --- Cargo.lock | 4 +++- Cargo.toml | 2 +- src/window.rs | 3 --- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e3cc59..0f83c93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1039,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.5.2", + "skulpin 0.5.2 (git+https://github.com/Kethku/skulpin?branch=sdl2)", "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)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1610,6 +1610,7 @@ dependencies = [ [[package]] name = "skulpin" version = "0.5.2" +source = "git+https://github.com/Kethku/skulpin?branch=sdl2#c4926bb80017606fc49d205625facc14ee6c7897" 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)", @@ -2095,6 +2096,7 @@ dependencies = [ "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.5.2 (git+https://github.com/Kethku/skulpin?branch=sdl2)" = "" "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 socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/Cargo.toml b/Cargo.toml index ed3f1d1..28e31c0 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 = { path = "../skulpin" } +skulpin = { git = "https://github.com/Kethku/skulpin", branch = "sdl2" } derive-new = "0.5" rmpv = "0.4.4" rust-embed = { version = "5.2.0", features = ["debug-embed"] } diff --git a/src/window.rs b/src/window.rs index abd0298..b02b1cb 100644 --- a/src/window.rs +++ b/src/window.rs @@ -126,9 +126,6 @@ pub fn ui_loop() { BRIDGE.queue_command(UiCommand::Keyboard(append_modifiers(modifiers, key_text, special))); } }, - Event::MouseMotion { - - } Event::TextInput { text, .. From 16a076a08264dd64f6814435096afdc8d587902a Mon Sep 17 00:00:00 2001 From: keith Date: Fri, 14 Feb 2020 08:42:22 -0800 Subject: [PATCH 08/21] minor fixes --- src/window.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/window.rs b/src/window.rs index b02b1cb..df2469f 100644 --- a/src/window.rs +++ b/src/window.rs @@ -20,7 +20,7 @@ use crate::INITIAL_DIMENSIONS; #[folder = "assets/"] struct Asset; -#[cfg(windows)] +#[cfg(target_os = "windows")] fn windows_fix_dpi() { use winapi::um::winuser::SetProcessDpiAwarenessContext; use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; @@ -85,9 +85,6 @@ 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 title = "Neovide".to_string(); let mut previous_size = LogicalSize::new(&window).unwrap(); let mut previous_dpis = dpis(&window).unwrap(); From 56386d0e7f364c90959d1a51cc200e62ff80a2d9 Mon Sep 17 00:00:00 2001 From: keith Date: Sat, 15 Feb 2020 15:25:25 -0800 Subject: [PATCH 09/21] mouse movement --- src/bridge/ui_commands.rs | 6 +- src/window.rs | 139 +++++++++++++------------------------- 2 files changed, 50 insertions(+), 95 deletions(-) diff --git a/src/bridge/ui_commands.rs b/src/bridge/ui_commands.rs index b665fe7..c1034e4 100644 --- a/src/bridge/ui_commands.rs +++ b/src/bridge/ui_commands.rs @@ -22,13 +22,13 @@ impl UiCommand { .expect("Input failed"); }, UiCommand::MouseButton { action, position: (grid_x, grid_y) } => - nvim.input_mouse("left", &action, "", 0, grid_x, grid_y).await + nvim.input_mouse("left", &action, "", 0, grid_y, grid_x).await .expect("Mouse Input Failed"), UiCommand::Scroll { direction, position: (grid_x, grid_y) } => - nvim.input_mouse("wheel", &direction, "", 0, grid_x, grid_y).await + nvim.input_mouse("wheel", &direction, "", 0, grid_y, grid_x).await .expect("Mouse Scroll Failed"), UiCommand::Drag(grid_x, grid_y) => - nvim.input_mouse("left", "drag", "", 0, grid_x, grid_y).await + nvim.input_mouse("left", "drag", "", 0, grid_y, grid_x).await .expect("Mouse Drag Failed") } } diff --git a/src/window.rs b/src/window.rs index df2469f..a8fcb0c 100644 --- a/src/window.rs +++ b/src/window.rs @@ -1,11 +1,10 @@ use std::time::{Duration, Instant}; use std::thread::sleep; -use log::{info, debug, trace, error}; +use log::{info, debug, error}; use skulpin::{LogicalSize, PhysicalSize}; use skulpin::sdl2; -use skulpin::sdl2::EventPump; -use skulpin::sdl2::event::{Event, WindowEvent}; +use skulpin::sdl2::event::Event; use skulpin::sdl2::keyboard::Mod; use skulpin::{RendererBuilder, PresentMode, CoordinateSystem, dpis}; @@ -97,17 +96,13 @@ pub fn ui_loop() { let editor_title = { EDITOR.lock().title.clone() }; if title != editor_title { title = editor_title; - window.set_title(&title); + window.set_title(&title).expect("Could not set title"); } for event in event_pump.poll_iter() { match event { Event::Quit {..} => break 'running, - Event::KeyDown { - keycode: Some(keycode), - keymod: modifiers, - .. - } => { + Event::KeyDown { keycode: Some(keycode), keymod: modifiers, .. } => { if let Some((key_text, special)) = parse_keycode(keycode) { let will_text_input = !modifiers.contains(Mod::LCTRLMOD) && @@ -123,10 +118,7 @@ pub fn ui_loop() { BRIDGE.queue_command(UiCommand::Keyboard(append_modifiers(modifiers, key_text, special))); } }, - Event::TextInput { - text, - .. - } => { + Event::TextInput { text, .. } => { let text = if text == "<" { String::from("") } else { @@ -134,6 +126,48 @@ pub fn ui_loop() { }; BRIDGE.queue_command(UiCommand::Keyboard(text)) }, + Event::MouseMotion { x, y, .. } => { + let grid_x = (x as f32 / renderer.font_width) as i64; + let grid_y = (y as f32 / renderer.font_height) 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::MouseButtonDown { .. } => { + BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("press"), position: mouse_pos }); + mouse_down = true; + }, + Event::MouseButtonUp { .. } => { + BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("release"), position: mouse_pos }); + mouse_down = false; + }, + Event::MouseWheel { x, y, .. } => { + let vertical_input_type = if y > 0 { + Some("up") + } else if y < 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 x > 0 { + Some("right") + } else if x < 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 }); + } + }, _ => {} } } @@ -171,83 +205,4 @@ pub fn ui_loop() { sleep(frame_length - elapsed); } } - - // event_loop.run(move |event, _window_target, control_flow| { - // trace!("Window Event: {:?}", event); - // match event { - // 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 }); - // } - // } - // } - // }) } From 1fa9127ef76f2217d675ac1b0ea8a7e5fa9c2a6a Mon Sep 17 00:00:00 2001 From: keith Date: Sat, 15 Feb 2020 15:47:45 -0800 Subject: [PATCH 10/21] fix mac and linux builds --- src/window.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/window.rs b/src/window.rs index a8fcb0c..5500339 100644 --- a/src/window.rs +++ b/src/window.rs @@ -19,12 +19,13 @@ use crate::INITIAL_DIMENSIONS; #[folder = "assets/"] struct Asset; -#[cfg(target_os = "windows")] fn windows_fix_dpi() { - use winapi::um::winuser::SetProcessDpiAwarenessContext; - use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; - unsafe { - SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + if cfg!(target_os = "windows") { + use winapi::um::winuser::SetProcessDpiAwarenessContext; + use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; + unsafe { + SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + } } } @@ -60,7 +61,6 @@ pub fn ui_loop() { // Icon::from_rgba(rgba, width, height).expect("Failed to create icon object") // }; // info!("icon created"); - windows_fix_dpi(); let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) From 08da1046809fe6fad8b297fc8930b6b764a31b2b Mon Sep 17 00:00:00 2001 From: keith Date: Sat, 15 Feb 2020 16:46:59 -0800 Subject: [PATCH 11/21] better linux and mac fix --- src/window.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/window.rs b/src/window.rs index 5500339..13d230c 100644 --- a/src/window.rs +++ b/src/window.rs @@ -19,13 +19,12 @@ use crate::INITIAL_DIMENSIONS; #[folder = "assets/"] struct Asset; +#[cfg(target_os = "windows")] fn windows_fix_dpi() { - if cfg!(target_os = "windows") { - use winapi::um::winuser::SetProcessDpiAwarenessContext; - use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; - unsafe { - SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); - } + use winapi::um::winuser::SetProcessDpiAwarenessContext; + use winapi::shared::windef::DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2; + unsafe { + SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); } } @@ -61,6 +60,7 @@ pub fn ui_loop() { // Icon::from_rgba(rgba, width, height).expect("Failed to create icon object") // }; // info!("icon created"); + #[cfg(target_os = "windows")] windows_fix_dpi(); let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) From d0f0477435725fab60c90b646d195870853ff795 Mon Sep 17 00:00:00 2001 From: keith Date: Sat, 15 Feb 2020 18:02:43 -0800 Subject: [PATCH 12/21] queue redraw on window event --- src/window.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/window.rs b/src/window.rs index 13d230c..ce79e53 100644 --- a/src/window.rs +++ b/src/window.rs @@ -102,6 +102,7 @@ pub fn ui_loop() { for event in event_pump.poll_iter() { match event { Event::Quit {..} => break 'running, + Event::Window {..} => REDRAW_SCHEDULER.queue_next_frame(), Event::KeyDown { keycode: Some(keycode), keymod: modifiers, .. } => { if let Some((key_text, special)) = parse_keycode(keycode) { let will_text_input = From 8244ade16c8a57ee5e98da6eaf121ba1eaecd1dd Mon Sep 17 00:00:00 2001 From: keith Date: Sun, 16 Feb 2020 00:32:09 -0800 Subject: [PATCH 13/21] staticly link sdl2 --- Cargo.lock | 1474 ++++++++++++++++++++++++++-------------------------- 1 file changed, 732 insertions(+), 742 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f83c93..f70ee38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,1126 +4,1252 @@ name = "adler32" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" [[package]] name = "ahash" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" dependencies = [ - "const-random 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "const-random", ] [[package]] name = "aho-corasick" version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743ad5a418686aad3b87fd14c43badd828cf26e214a00f92a384291cf22e1811" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", ] [[package]] name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.8", ] [[package]] name = "anyhow" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" [[package]] name = "arc-swap" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff" [[package]] name = "arrayref" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" dependencies = [ - "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop", ] [[package]] name = "arrayvec" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" [[package]] name = "ash" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003d1fb2eb12eb06d4a03dbe02eea67a9fac910fa97932ab9e3a75b96a1ea5e5" dependencies = [ - "shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "shared_library", ] [[package]] name = "async-trait" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "750b1c38a1dfadd108da0f01c08f4cdc7ff1bb39b325f9c82cc972361780a6e1" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", + "hermit-abi", + "libc", + "winapi 0.3.8", ] [[package]] name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" [[package]] name = "base64" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" [[package]] name = "bindgen" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c85344eb535a31b62f0af37be84441ba9e7f0f4111eb0530f43d15e513fe57" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)", - "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", - "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "cexpr", + "cfg-if", + "clang-sys", + "clap", + "env_logger", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "proc-macro2 1.0.8", + "quote 1.0.2", + "regex", + "rustc-hash", + "shlex", + "which", ] [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "blake2b_simd" version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" dependencies = [ - "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref", + "arrayvec 0.5.1", + "constant_time_eq", ] [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "byteorder" -version = "1.3.2" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" [[package]] name = "bytes" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "iovec", ] [[package]] name = "bytes" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" [[package]] name = "cc" version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" [[package]] name = "cexpr" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d" dependencies = [ - "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "nom", ] [[package]] name = "cfg-if" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "chrono" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" dependencies = [ - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer", + "num-traits", + "time", ] [[package]] name = "clang-sys" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glob", + "libc", + "libloading", ] [[package]] name = "clap" version = "2.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", ] [[package]] name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", ] [[package]] name = "cmake" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", ] [[package]] name = "cocoa" version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29f7768b2d1be17b96158e3285951d366b40211320fb30826a76cb7a0da6400" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "block 0.1.6 (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)", - "foreign-types 0.3.2 (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)", + "bitflags", + "block", + "core-foundation 0.6.4", + "core-graphics 0.17.3", + "foreign-types", + "libc", + "objc", ] [[package]] name = "color_quant" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" [[package]] name = "const-random" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" dependencies = [ - "const-random-macro 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", + "const-random-macro", + "proc-macro-hack", ] [[package]] name = "const-random-macro" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom", + "proc-macro-hack", ] [[package]] name = "constant_time_eq" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "core-foundation" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.2", + "libc", ] [[package]] name = "core-foundation" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" dependencies = [ - "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0", + "libc", ] [[package]] name = "core-foundation-sys" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" [[package]] name = "core-foundation-sys" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" [[package]] name = "core-graphics" version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "core-foundation 0.6.4", + "foreign-types", + "libc", ] [[package]] name = "core-graphics" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "core-foundation 0.7.0", + "foreign-types", + "libc", ] [[package]] name = "core-text" version = "13.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db84654ad95211c082cf9795f6f83dc17d0ae6c985ac1b906369dc7384ed346d" dependencies = [ - "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)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.4", + "core-graphics 0.17.3", + "foreign-types", + "libc", ] [[package]] name = "core-text" version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "131b3fd1f8bd5db9f2b398fa4fdb6008c64afc04d447c306ac2c7e98fba2a61d" dependencies = [ - "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.7.0", + "core-graphics 0.19.0", + "foreign-types", + "libc", ] [[package]] name = "crc32fast" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "crossbeam-deque" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca" dependencies = [ - "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7", + "cfg-if", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", ] [[package]] name = "crossbeam-queue" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7", + "cfg-if", + "lazy_static", ] [[package]] name = "curl" version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06aa71e9208a54def20792d877bc663d6aae0732b9852e612c4a933177c31283" dependencies = [ - "curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", - "schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "winapi 0.3.8", ] [[package]] name = "curl-sys" version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "winapi 0.3.8", ] [[package]] name = "deflate" version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" dependencies = [ - "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "adler32", + "byteorder", ] [[package]] name = "derive-new" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71f31892cd5c62e414316f2963c5689242c43d8e7bbcaaeca97e5e28c95d91d9" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "dirs" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "dirs-sys", ] [[package]] name = "dirs-sys" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" dependencies = [ - "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)", - "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "redox_users", + "winapi 0.3.8", ] [[package]] name = "dwrote" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd1369e02db5e9b842a9b67bce8a2fcc043beafb2ae8a799dd482d46ea1ff0d" 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)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "libc", + "winapi 0.3.8", ] [[package]] name = "either" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" [[package]] name = "encoding_rs" version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "env_logger" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ - "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "atty", + "humantime", + "log", + "regex", + "termcolor", ] [[package]] name = "euclid" version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f852d320142e1cceb15dccef32ed72a9970b83109d8a4e24b1ab04d579f485d" dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", ] [[package]] name = "expat-sys" version = "2.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" dependencies = [ - "cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake", + "pkg-config", ] [[package]] name = "filetime" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d" dependencies = [ - "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)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "redox_syscall", + "winapi 0.3.8", ] [[package]] name = "flate2" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "crc32fast", + "libc", + "miniz_oxide", ] [[package]] name = "flexi_logger" -version = "0.14.7" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "515fb7f6541dafe542c87c12a7ab6a52190cccb6c348b5951ef62d9978189ae8" dependencies = [ - "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono", + "glob", + "log", + "regex", ] [[package]] name = "float-ord" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" [[package]] name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" [[package]] name = "font-kit" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b6e2b877097ffd0abac6597fea26fccb5ed7eb9da0a4094f11ccc8aba64efb" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-text 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.20.7 (registry+https://github.com/rust-lang/crates.io-index)", - "float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "freetype 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)", - "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)", - "lyon_path 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "core-foundation 0.7.0", + "core-graphics 0.19.0", + "core-text 15.0.0", + "dirs", + "dwrote", + "euclid", + "float-ord", + "freetype", + "lazy_static", + "libc", + "log", + "lyon_path", + "servo-fontconfig", + "walkdir", + "winapi 0.3.8", ] [[package]] name = "foreign-types" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types-shared", ] [[package]] name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "freetype" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "servo-freetype-sys", ] [[package]] name = "fuchsia-zircon" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "fuchsia-zircon-sys", ] [[package]] name = "fuchsia-zircon-sys" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" [[package]] name = "futures" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780" dependencies = [ - "futures-channel 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-executor 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] name = "futures-channel" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8" dependencies = [ - "futures-core 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core", + "futures-sink", ] [[package]] name = "futures-core" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a" [[package]] name = "futures-executor" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba" dependencies = [ - "futures-core 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core", + "futures-task", + "futures-util", ] [[package]] name = "futures-io" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6" [[package]] name = "futures-macro" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7" dependencies = [ - "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "futures-sink" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6" [[package]] name = "futures-task" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27" [[package]] name = "futures-util" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5" dependencies = [ - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-macro 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.29", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", + "tokio-io", ] [[package]] name = "getrandom" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" dependencies = [ - "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)", - "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "wasi", ] [[package]] name = "gif" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af" dependencies = [ - "color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "color_quant", + "lzw", ] [[package]] name = "glob" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "harfbuzz" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46f7426266a5ece3e49eae6f48e602c0f8c39917354a847eac9c06437dcde8da" dependencies = [ - "harfbuzz-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "harfbuzz-sys", ] [[package]] name = "harfbuzz-sys" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d74cab8498b2d15700b694fb38f77562869d05e1f8b602dd05221a1ca2d63" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "core-text 13.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "core-graphics 0.17.3", + "core-text 13.3.2", + "foreign-types", + "freetype", + "pkg-config", ] [[package]] name = "hashbrown" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" dependencies = [ - "ahash 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "ahash", + "autocfg 0.1.7", ] [[package]] name = "heck" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation", ] [[package]] name = "hermit-abi" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ - "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error", ] [[package]] name = "image" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08ed2ada878397b045454ac7cfb011d73132c59f31a955d230bd1f1c2e68eb4a" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", - "jpeg-decoder 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "num-rational 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "png 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)", - "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "tiff 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "gif", + "jpeg-decoder", + "num-iter", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", ] [[package]] name = "inflate" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" dependencies = [ - "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "adler32", ] [[package]] name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "itoa" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" [[package]] name = "jpeg-decoder" version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0256f0aec7352539102a9efbcb75543227b7ab1117e0f95450023af730128451" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "rayon", ] [[package]] name = "kernel32-sys" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lazycell" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" [[package]] name = "libc" version = "0.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" [[package]] name = "libloading" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "winapi 0.3.8", ] [[package]] name = "libz-sys" version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] name = "lock_api" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b" dependencies = [ - "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard", ] [[package]] name = "log" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "lru" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237" dependencies = [ - "hashbrown 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown", ] [[package]] name = "lyon_geom" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca04310c9807612a311506106000b6eccb2e27bca9bfb594ce80fb8a31231f9d" dependencies = [ - "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.20.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.12", + "euclid", + "num-traits", ] [[package]] name = "lyon_path" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bcb57ac24a5428539e2c7c0592766d5933c937d703f430990c669c00de96862" dependencies = [ - "lyon_geom 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lyon_geom", ] [[package]] name = "lzw" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" [[package]] name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "memchr" -version = "2.3.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53445de381a1f436797497c61d851644d0e8e88e6140f22872ad33a704933978" [[package]] name = "memoffset" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" dependencies = [ - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version", ] [[package]] name = "metal" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83c7dcc2038e12f68493fa3de44235df27b2497178e257185b4b5b5d028a1e4" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "block", + "cocoa", + "core-graphics 0.17.3", + "foreign-types", + "log", + "objc", ] [[package]] name = "miniz_oxide" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" dependencies = [ - "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "adler32", ] [[package]] name = "mio" version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (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)", - "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.1", + "net2", + "slab", + "winapi 0.2.8", ] [[package]] name = "mio-named-pipes" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" dependencies = [ - "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)", - "miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "log", + "mio", + "miow 0.3.3", + "winapi 0.3.8", ] [[package]] name = "mio-uds" version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" dependencies = [ - "iovec 0.1.4 (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)", + "iovec", + "libc", + "mio", ] [[package]] name = "miow" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", ] [[package]] name = "miow" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226" dependencies = [ - "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2", + "winapi 0.3.8", ] [[package]] name = "neovide" version = "0.4.0" dependencies = [ - "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "derive-new 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.20.7 (registry+https://github.com/rust-lang/crates.io-index)", - "flexi_logger 0.14.7 (registry+https://github.com/rust-lang/crates.io-index)", - "font-kit 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.22.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "lru 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "nvim-rs 0.1.1-alpha.0 (git+https://github.com/kethku/nvim-rs)", - "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "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.5.2 (git+https://github.com/Kethku/skulpin?branch=sdl2)", - "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)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winres 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "anyhow", + "async-trait", + "derive-new", + "euclid", + "flexi_logger", + "font-kit", + "image", + "lazy_static", + "log", + "lru", + "nvim-rs", + "parking_lot", + "rmpv", + "rust-embed", + "skribo", + "skulpin", + "tokio", + "unicode-segmentation", + "winapi 0.3.8", + "winres", ] [[package]] name = "net2" version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" dependencies = [ - "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)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "winapi 0.3.8", ] [[package]] name = "nodrop" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" [[package]] name = "nom" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", + "version_check", ] [[package]] name = "num-derive" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" 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)", - "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", ] [[package]] name = "num-integer" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0", + "num-traits", ] [[package]] name = "num-iter" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0", + "num-integer", + "num-traits", ] [[package]] name = "num-rational" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4dc79f9e6c81bef96148c8f6b8e72ad4541caa4a24373e900a36da07de03a3" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0", + "num-integer", + "num-traits", ] [[package]] name = "num-traits" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0", ] [[package]] name = "num_cpus" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" dependencies = [ - "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi", + "libc", ] [[package]] @@ -1131,349 +1257,386 @@ name = "nvim-rs" version = "0.1.1-alpha.0" source = "git+https://github.com/kethku/nvim-rs#3abe58a50eaaccccc15bef7260f89020e280b382" dependencies = [ - "async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rmp 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", - "rmpv 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "async-trait", + "futures 0.3.4", + "log", + "pin-project", + "rmp", + "rmpv", + "tokio", ] [[package]] name = "objc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ - "malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc_exception 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_buf", + "objc_exception", ] [[package]] name = "objc_exception" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", ] [[package]] name = "openssl-probe" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" [[package]] name = "openssl-sys" version = "0.9.54" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] name = "parking_lot" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc" dependencies = [ - "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api", + "parking_lot_core", ] [[package]] name = "parking_lot_core" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "cloudabi", + "libc", + "redox_syscall", + "smallvec", + "winapi 0.3.8", ] [[package]] name = "peeking_take_while" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pin-project" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" dependencies = [ - "pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-internal", ] [[package]] name = "pin-project-internal" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "pin-project-lite" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" [[package]] name = "pin-utils" version = "0.1.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" [[package]] name = "pkg-config" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" [[package]] name = "png" version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "deflate 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)", - "inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "crc32fast", + "deflate", + "inflate", ] [[package]] name = "proc-macro-hack" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "proc-macro-nested" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e" [[package]] name = "proc-macro2" version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" dependencies = [ - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.0", ] [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", ] [[package]] name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", ] [[package]] name = "raw-window-handle" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "rayon" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" dependencies = [ - "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque", + "either", + "rayon-core", ] [[package]] name = "rayon-core" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" dependencies = [ - "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "lazy_static", + "num_cpus", ] [[package]] name = "redox_syscall" version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" [[package]] name = "redox_users" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom", + "redox_syscall", + "rust-argon2", ] [[package]] name = "regex" version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8" dependencies = [ - "aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", ] [[package]] name = "regex-syntax" version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06" [[package]] name = "rmp" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f10b46df14cf1ee1ac7baa4d2fbc2c52c0622a4b82fa8740e37bc452ac0184f" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "num-traits", ] [[package]] name = "rmpv" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e5078dd8691b0811b14fbd2d78358f7fc68e83b98ba6f16488bf77694e9fe2" dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "rmp 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", + "rmp", ] [[package]] name = "rust-argon2" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", ] [[package]] name = "rust-embed" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "412cddb9905679491f2829ef7fea79179b9a76fa942e06ab52b420dbab94a406" dependencies = [ - "rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rust-embed-impl", + "rust-embed-utils", + "walkdir", ] [[package]] name = "rust-embed-impl" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50212d0e652f580e6d297537c31237d4b2f4497e5912eebe25fde97ac06a51df" dependencies = [ - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.2", + "rust-embed-utils", + "syn 1.0.14", + "walkdir", ] [[package]] name = "rust-embed-utils" version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105" dependencies = [ - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir", ] [[package]] name = "rustc-hash" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc_version" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver", ] [[package]] name = "ryu" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" [[package]] name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] name = "schannel" version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295" dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "winapi 0.3.8", ] [[package]] name = "scoped_threadpool" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" [[package]] name = "scopeguard" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" [[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)", + "bitflags", + "lazy_static", + "libc", + "raw-window-handle", + "sdl2-sys", ] [[package]] @@ -1481,117 +1644,129 @@ 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)", + "cfg-if", + "cmake", + "flate2", + "libc", + "tar", + "unidiff", ] [[package]] name = "semver" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver-parser", ] [[package]] name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" [[package]] name = "serde_json" -version = "1.0.46" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25" dependencies = [ - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa", + "ryu", + "serde", ] [[package]] name = "servo-fontconfig" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a088f8d775a5c5314aae09bd77340bc9c67d72b9a45258be34c83548b4814cd9" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-fontconfig-sys 4.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "servo-fontconfig-sys", ] [[package]] name = "servo-fontconfig-sys" version = "4.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b3e166450f523f4db06c14f02a2d39e76d49b5d8cbd224338d93e3595c156c" dependencies = [ - "expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "expat-sys", + "pkg-config", + "servo-freetype-sys", ] [[package]] name = "servo-freetype-sys" version = "4.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4ccb6d0d32d277d3ef7dea86203d8210945eb7a45fba89dd445b3595dd0dfc" dependencies = [ - "cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake", + "pkg-config", ] [[package]] name = "shared_library" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" 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)", + "lazy_static", + "libc", ] [[package]] name = "shlex" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook-registry" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" dependencies = [ - "arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "arc-swap", + "libc", ] [[package]] name = "skia-bindings" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a38d82d2d3021c59e4a21f799f894bb59c8bf4161836896338ef50f8fe3cbc" dependencies = [ - "bindgen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", - "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", - "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", - "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen", + "cc", + "curl", + "flate2", + "heck", + "regex", + "serde_json", + "tar", + "toml", ] [[package]] name = "skia-safe" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c02fb631f02d1a0a1e94c6ddd5a7200b7ef8b348c758e171da558fd72321015" 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)", - "skia-bindings 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "lazy_static", + "skia-bindings", ] [[package]] @@ -1599,538 +1774,353 @@ name = "skribo" version = "0.0.1" source = "git+https://github.com/linebender/skribo#f306037c36f596bba45cb9fd698ea53b6ca65e2e" dependencies = [ - "euclid 0.20.7 (registry+https://github.com/rust-lang/crates.io-index)", - "font-kit 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "harfbuzz 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "harfbuzz-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid", + "font-kit", + "harfbuzz", + "harfbuzz-sys", + "log", + "unicode-normalization", ] [[package]] name = "skulpin" version = "0.5.2" -source = "git+https://github.com/Kethku/skulpin?branch=sdl2#c4926bb80017606fc49d205625facc14ee6c7897" +source = "git+https://github.com/Kethku/skulpin?branch=sdl2#3492e34d940860fa45d1eab4c56a7dee8f734481" 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)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", + "ash", + "cocoa", + "log", + "metal", + "objc", + "raw-window-handle", + "sdl2", + "skia-safe", + "winapi 0.3.8", ] [[package]] name = "slab" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "smallvec" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" [[package]] name = "socket2" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" dependencies = [ - "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)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "redox_syscall", + "winapi 0.3.8", ] [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "syn" version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" 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)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", ] [[package]] name = "syn" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "unicode-xid 0.2.0", ] [[package]] name = "tar" version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" dependencies = [ - "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "filetime", + "libc", + "redox_syscall", + "xattr", ] [[package]] name = "termcolor" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" dependencies = [ - "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] name = "textwrap" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "thread_local" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" dependencies = [ - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", ] [[package]] name = "tiff" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "lzw", + "num-derive", + "num-traits", ] [[package]] name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "redox_syscall", + "winapi 0.3.8", ] [[package]] name = "tokio" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.4 (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)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4", + "fnv", + "iovec", + "lazy_static", + "libc", + "memchr", + "mio", + "mio-named-pipes", + "mio-uds", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "slab", + "tokio-macros", + "winapi 0.3.8", ] [[package]] name = "tokio-io" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ - "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12", + "futures 0.1.29", + "log", ] [[package]] name = "tokio-macros" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8", + "quote 1.0.2", + "syn 1.0.14", ] [[package]] name = "toml" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" dependencies = [ - "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", ] [[package]] name = "unicode-normalization" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" dependencies = [ - "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec", ] [[package]] name = "unicode-segmentation" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" [[package]] name = "unicode-width" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" [[package]] name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" [[package]] name = "unidiff" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c152966fd1e11a44da1063caf6ca3c615cf5760603223015441df29a9653ae9" 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)", + "encoding_rs", + "lazy_static", + "regex", ] [[package]] name = "vcpkg" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" [[package]] name = "vec_map" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" [[package]] name = "version_check" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" [[package]] name = "walkdir" version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" dependencies = [ - "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file", + "winapi 0.3.8", + "winapi-util", ] [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "which" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "winapi" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" [[package]] name = "winapi" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-build" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.8", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winres" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4fb510bbfe5b8992ff15f77a2e6fe6cf062878f0eda00c0f44963a807ca5dc" dependencies = [ - "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "toml", ] [[package]] name = "ws2_32-sys" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" dependencies = [ - "libc 0.2.66 (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 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 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" -"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" -"checksum ash 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)" = "003d1fb2eb12eb06d4a03dbe02eea67a9fac910fa97932ab9e3a75b96a1ea5e5" -"checksum async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "750b1c38a1dfadd108da0f01c08f4cdc7ff1bb39b325f9c82cc972361780a6e1" -"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" -"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" -"checksum bindgen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1c85344eb535a31b62f0af37be84441ba9e7f0f4111eb0530f43d15e513fe57" -"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -"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 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" -"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" -"checksum clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853" -"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" -"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" -"checksum cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f29f7768b2d1be17b96158e3285951d366b40211320fb30826a76cb7a0da6400" -"checksum color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" -"checksum const-random 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -"checksum const-random-macro 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" -"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" -"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" -"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" -"checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9" -"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 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" -"checksum crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" -"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" -"checksum curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "06aa71e9208a54def20792d877bc663d6aae0732b9852e612c4a933177c31283" -"checksum curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b" -"checksum deflate 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)" = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" -"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 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" -"checksum filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d" -"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f" -"checksum flexi_logger 0.14.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a788df908fc49085a926cc9663c0026f1cfbdcb3c10b314dc27e28e42e35f7f5" -"checksum float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum font-kit 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09b6e2b877097ffd0abac6597fea26fccb5ed7eb9da0a4094f11ccc8aba64efb" -"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" -"checksum futures 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ad6636318d07abeb4656157ef1936c64485f066c7f9ce5d7c5b879fcb6dd5ccb" -"checksum futures-channel 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7264eb65b194d2fa6ec31b898ead7c332854bfa42521659226e72a585fca5b85" -"checksum futures-core 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b597b16aa1a19ce2dfde5128a7c656d75346b35601a640be2d9efd4e9c83609d" -"checksum futures-executor 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "46a5e593d77bee52393c7f3b16b8b413214096d3f7dc4f5f4c57dee01ad2bdaf" -"checksum futures-io 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d429f824b5e5dbd45fc8e54e1005a37e1f8c6d570cd64d0b59b24d3a80b8b8e" -"checksum futures-macro 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d75b72904b78044e0091355fc49d29f48bff07a68a719a41cf059711e071b4" -"checksum futures-sink 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "04299e123547ea7c56f3e1b376703142f5fc0b6700433eed549e9d0b8a75a66c" -"checksum futures-task 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86f9ceab4bce46555ee608b1ec7c414d6b2e76e196ef46fa5a8d4815a8571398" -"checksum futures-util 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7d2f1296f7644d2cd908ebb2fa74645608e39f117c72bac251d40418c6d74c4f" -"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -"checksum gif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af" -"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" -"checksum harfbuzz 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "46f7426266a5ece3e49eae6f48e602c0f8c39917354a847eac9c06437dcde8da" -"checksum harfbuzz-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "212d74cab8498b2d15700b694fb38f77562869d05e1f8b602dd05221a1ca2d63" -"checksum hashbrown 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" -"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 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" -"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"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 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" -"checksum lyon_geom 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ca04310c9807612a311506106000b6eccb2e27bca9bfb594ce80fb8a31231f9d" -"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 memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" -"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-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 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" -"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" -"checksum num-iter 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00" -"checksum num-rational 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "da4dc79f9e6c81bef96148c8f6b8e72ad4541caa4a24373e900a36da07de03a3" -"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" -"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" -"checksum nvim-rs 0.1.1-alpha.0 (git+https://github.com/kethku/nvim-rs)" = "" -"checksum objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -"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 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 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" -"checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" -"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" -"checksum png 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283" -"checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5" -"checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e" -"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" -"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" -"checksum raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" -"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" -"checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" -"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" -"checksum regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8" -"checksum regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06" -"checksum rmp 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "0f10b46df14cf1ee1ac7baa4d2fbc2c52c0622a4b82fa8740e37bc452ac0184f" -"checksum rmpv 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b8e5078dd8691b0811b14fbd2d78358f7fc68e83b98ba6f16488bf77694e9fe2" -"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" -"checksum rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b18893bdbdb0fa5bce588f5d7ab4afbd0678fc879d31535912bf39b7fbc062d6" -"checksum rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50633968284cfc373661345fc6382e62b738079f045738023ebc5e445cf44357" -"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 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" -"checksum serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)" = "21b01d7f0288608a01dca632cf1df859df6fd6ffa885300fc275ce2ba6221953" -"checksum servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a088f8d775a5c5314aae09bd77340bc9c67d72b9a45258be34c83548b4814cd9" -"checksum servo-fontconfig-sys 4.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "62b3e166450f523f4db06c14f02a2d39e76d49b5d8cbd224338d93e3595c156c" -"checksum servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4ccb6d0d32d277d3ef7dea86203d8210945eb7a45fba89dd445b3595dd0dfc" -"checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" -"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"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.5.2 (git+https://github.com/Kethku/skulpin?branch=sdl2)" = "" -"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 socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" -"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" -"checksum tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" -"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" -"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" -"checksum tiff 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d" -"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b" -"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -"checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" -"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" -"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" -"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" -"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 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 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" -"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" -"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 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 xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" + "libc", +] From 55194d68b1b69e91aa2f2bc7366014a00734b791 Mon Sep 17 00:00:00 2001 From: keith Date: Sun, 16 Feb 2020 14:51:20 -0800 Subject: [PATCH 14/21] update skulpin to use better vulkan surface and extension functions from sdl2 --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index f70ee38..0d03d09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1785,7 +1785,7 @@ dependencies = [ [[package]] name = "skulpin" version = "0.5.2" -source = "git+https://github.com/Kethku/skulpin?branch=sdl2#3492e34d940860fa45d1eab4c56a7dee8f734481" +source = "git+https://github.com/Kethku/skulpin?branch=sdl2#396bc7d52240a05384c73de1e117a601b1e2e5ff" dependencies = [ "ash", "cocoa", From 63727f055262b657ed42187bff28e16d40066662 Mon Sep 17 00:00:00 2001 From: keith Date: Sun, 16 Feb 2020 15:14:04 -0800 Subject: [PATCH 15/21] add libsdl2 to ubuntu dependencies --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f4bc3d2..c730430 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -60,7 +60,7 @@ jobs: - name: Install dependencies run: | - sudo apt-get install -y curl gnupg ca-certificates git gcc-multilib g++-multilib cmake libssl-dev pkg-config libfreetype6-dev libasound2-dev libexpat1-dev libxcb-composite0-dev libbz2-dev freeglut3-dev libxi-dev + sudo apt-get install -y curl gnupg ca-certificates git gcc-multilib g++-multilib cmake libssl-dev pkg-config libfreetype6-dev libasound2-dev libexpat1-dev libxcb-composite0-dev libbz2-dev freeglut3-dev libxi-dev libsdl2-dev - name: Build run: cargo build --release From 813f00fb8530b4eed3c3e4201b823a93422894ec Mon Sep 17 00:00:00 2001 From: keith Date: Sun, 16 Feb 2020 16:32:14 -0800 Subject: [PATCH 16/21] enable mouse clickthrough --- src/window.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/window.rs b/src/window.rs index ce79e53..5523415 100644 --- a/src/window.rs +++ b/src/window.rs @@ -62,6 +62,7 @@ pub fn ui_loop() { // info!("icon created"); #[cfg(target_os = "windows")] windows_fix_dpi(); + sdl2::hint::set("SDL_MOUSE_FOCUS_CLICKTHROUGH", "1"); let mut window = video_subsystem.window("Neovide", logical_size.width, logical_size.height) .position_centered() From 0f10f186e846c26f1e553a08dc5b0f982b225a1d Mon Sep 17 00:00:00 2001 From: keith Date: Sun, 16 Feb 2020 22:42:06 -0800 Subject: [PATCH 17/21] fix setting loading --- src/settings.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/settings.rs b/src/settings.rs index 6ddab99..ebdd7e1 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -7,6 +7,7 @@ use nvim_rs::compat::tokio::Compat; use flexi_logger::{Logger, Criterion, Naming, Cleanup}; use tokio::process::ChildStdin; use parking_lot::Mutex; +use log::warn; use crate::error_handling::ResultPanicExplanation; @@ -14,6 +15,7 @@ lazy_static! { pub static ref SETTINGS: Settings = Settings::new(); } +#[derive(Debug)] pub enum Setting { Bool(bool), U16(u16), @@ -113,12 +115,14 @@ impl Settings { pub async fn read_initial_values(&self, nvim: &Neovim>) { let keys : Vec= self.settings.lock().keys().cloned().collect(); for name in keys { - let variable_name = format!("g:neovide_{}", name.to_string()); - if let Ok(value) = nvim.get_var(&variable_name).await { - self.settings.lock().get_mut(&name).unwrap().parse(value); - } else { - let setting = self.get(&name); - nvim.set_var(&variable_name, setting.unparse()).await.ok(); + let variable_name = format!("neovide_{}", name.to_string()); + match nvim.get_var(&variable_name).await { + Ok(value) => self.settings.lock().get_mut(&name).unwrap().parse(value), + Err(error) => { + warn!("Initial value load failed for {}: {}", name, error); + let setting = self.get(&name); + nvim.set_var(&variable_name, setting.unparse()).await.ok(); + } } } } @@ -139,7 +143,6 @@ impl Settings { pub fn handle_changed_notification(&self, arguments: Vec) { let mut arguments = arguments.into_iter(); let (name, value) = (arguments.next().unwrap(), arguments.next().unwrap()); - dbg!(&name, &value); let name: Result= name.try_into(); let name = name.unwrap(); From 8448d1b5a971843419dce1dff3bb347bae89e157 Mon Sep 17 00:00:00 2001 From: keith Date: Mon, 17 Feb 2020 19:31:52 -0800 Subject: [PATCH 18/21] fix key binding issue, text scaling, and maybe render bug --- Cargo.lock | 2 -- Cargo.toml | 1 + src/settings.rs | 4 ++-- src/window.rs | 19 +++++++++++++------ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0d03d09..474713e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1635,7 +1635,6 @@ dependencies = [ "bitflags", "lazy_static", "libc", - "raw-window-handle", "sdl2-sys", ] @@ -1785,7 +1784,6 @@ dependencies = [ [[package]] name = "skulpin" version = "0.5.2" -source = "git+https://github.com/Kethku/skulpin?branch=sdl2#396bc7d52240a05384c73de1e117a601b1e2e5ff" dependencies = [ "ash", "cocoa", diff --git a/Cargo.toml b/Cargo.toml index 28e31c0..6c4e7d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,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 = "sdl2" } +# skulpin = { path = "../skulpin" } derive-new = "0.5" rmpv = "0.4.4" rust-embed = { version = "5.2.0", features = ["debug-embed"] } diff --git a/src/settings.rs b/src/settings.rs index ebdd7e1..b5bebc8 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -113,7 +113,7 @@ pub struct Settings { impl Settings { pub async fn read_initial_values(&self, nvim: &Neovim>) { - let keys : Vec= self.settings.lock().keys().cloned().collect(); + let keys : Vec = self.settings.lock().keys().cloned().collect(); for name in keys { let variable_name = format!("neovide_{}", name.to_string()); match nvim.get_var(&variable_name).await { @@ -128,7 +128,7 @@ impl Settings { } pub async fn setup_changed_listeners(&self, nvim: &Neovim>) { - let keys : Vec= self.settings.lock().keys().cloned().collect(); + let keys : Vec = self.settings.lock().keys().cloned().collect(); for name in keys { let vimscript = format!("function NeovideNotify{}Changed(d, k, z)\n", name) + diff --git a/src/window.rs b/src/window.rs index 5523415..7522aff 100644 --- a/src/window.rs +++ b/src/window.rs @@ -76,7 +76,7 @@ pub fn ui_loop() { let mut skulpin_renderer = RendererBuilder::new() .prefer_integrated_gpu() .use_vulkan_debug_layer(true) - .present_mode_priority(vec![PresentMode::Mailbox, PresentMode::Immediate]) + .present_mode_priority(vec![PresentMode::Immediate]) .coordinate_system(CoordinateSystem::Logical) .build(&window) .expect("Failed to create renderer"); @@ -100,6 +100,7 @@ pub fn ui_loop() { window.set_title(&title).expect("Could not set title"); } + let mut ignore_text_input = false; for event in event_pump.poll_iter() { match event { Event::Quit {..} => break 'running, @@ -107,6 +108,7 @@ pub fn ui_loop() { Event::KeyDown { keycode: Some(keycode), keymod: modifiers, .. } => { if let Some((key_text, special)) = parse_keycode(keycode) { let will_text_input = + !modifiers.contains(Mod::LCTRLMOD) && !modifiers.contains(Mod::RCTRLMOD) && !modifiers.contains(Mod::LALTMOD) && @@ -118,15 +120,20 @@ pub fn ui_loop() { } BRIDGE.queue_command(UiCommand::Keyboard(append_modifiers(modifiers, key_text, special))); + ignore_text_input = true; } }, Event::TextInput { text, .. } => { - let text = if text == "<" { - String::from("") + if ignore_text_input { + ignore_text_input = false; } else { - text - }; - BRIDGE.queue_command(UiCommand::Keyboard(text)) + let text = if text == "<" { + String::from("") + } else { + text + }; + BRIDGE.queue_command(UiCommand::Keyboard(text)) + } }, Event::MouseMotion { x, y, .. } => { let grid_x = (x as f32 / renderer.font_width) as i64; From 0ab52f1ac6d7c00c27dced4f5999a071a070948c Mon Sep 17 00:00:00 2001 From: keith Date: Mon, 17 Feb 2020 19:34:00 -0800 Subject: [PATCH 19/21] update skulpin --- Cargo.lock | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 474713e..1af2f18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -855,9 +855,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" +checksum = "e2c55f143919fbc0bc77e427fe2d74cf23786d7c1875666f2fde3ac3c659bb67" dependencies = [ "libc", ] @@ -1623,9 +1623,9 @@ checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" [[package]] name = "scopeguard" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "sdl2" @@ -1784,6 +1784,7 @@ dependencies = [ [[package]] name = "skulpin" version = "0.5.2" +source = "git+https://github.com/Kethku/skulpin?branch=sdl2#af8b8f50f5f02c727dcb9d9c5bc958de3b708513" dependencies = [ "ash", "cocoa", From 8c19cdd2756d56d935999c2ffe2107b336175cc5 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Tue, 18 Feb 2020 10:23:41 -0800 Subject: [PATCH 20/21] fixed mouse dpi mapping --- Cargo.lock | 10 +++++----- src/bridge/ui_commands.rs | 16 ++++++++-------- src/window.rs | 34 ++++++++++++++++++++-------------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1af2f18..dc51611 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -458,9 +458,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b" +checksum = "0853fe2a575bb381b1f173610372c7722d9fa9bc4056512ed99fe6a644c388c6" dependencies = [ "cc", "libc", @@ -1630,7 +1630,7 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "sdl2" version = "0.33.0" -source = "git+https://github.com/Rust-SDL2/rust-sdl2#4ff7e9ce79c42360bf02f716818cdb3bfd057370" +source = "git+https://github.com/Rust-SDL2/rust-sdl2#c3f0088ea49f6c1b29b9e110313cd7b2a9833dc9" dependencies = [ "bitflags", "lazy_static", @@ -1641,7 +1641,7 @@ dependencies = [ [[package]] name = "sdl2-sys" version = "0.33.0" -source = "git+https://github.com/Rust-SDL2/rust-sdl2#4ff7e9ce79c42360bf02f716818cdb3bfd057370" +source = "git+https://github.com/Rust-SDL2/rust-sdl2#c3f0088ea49f6c1b29b9e110313cd7b2a9833dc9" dependencies = [ "cfg-if", "cmake", @@ -1784,7 +1784,7 @@ dependencies = [ [[package]] name = "skulpin" version = "0.5.2" -source = "git+https://github.com/Kethku/skulpin?branch=sdl2#af8b8f50f5f02c727dcb9d9c5bc958de3b708513" +source = "git+https://github.com/Kethku/skulpin?branch=sdl2#b4451490e457cd7ad504819a99d978a8d0f38ff4" dependencies = [ "ash", "cocoa", diff --git a/src/bridge/ui_commands.rs b/src/bridge/ui_commands.rs index c1034e4..effc282 100644 --- a/src/bridge/ui_commands.rs +++ b/src/bridge/ui_commands.rs @@ -4,31 +4,31 @@ use tokio::process::ChildStdin; #[derive(Debug, Clone)] pub enum UiCommand { - Resize { width: i64, height: i64 }, + Resize { width: u32, height: u32 }, Keyboard(String), - MouseButton { action: String, position: (i64, i64) }, - Scroll { direction: String, position: (i64, i64) }, - Drag(i64, i64) + MouseButton { action: String, position: (u32, u32) }, + Scroll { direction: String, position: (u32, u32) }, + Drag(u32, u32) } impl UiCommand { pub async fn execute(self, nvim: &Neovim>) { match self { UiCommand::Resize { width, height } => - nvim.ui_try_resize(width.max(10), height.max(3)).await + nvim.ui_try_resize(width.max(10) as i64, height.max(3) as i64).await .expect("Resize failed"), UiCommand::Keyboard(input_command) => { nvim.input(&input_command).await .expect("Input failed"); }, UiCommand::MouseButton { action, position: (grid_x, grid_y) } => - nvim.input_mouse("left", &action, "", 0, grid_y, grid_x).await + nvim.input_mouse("left", &action, "", 0, grid_y as i64, grid_x as i64).await .expect("Mouse Input Failed"), UiCommand::Scroll { direction, position: (grid_x, grid_y) } => - nvim.input_mouse("wheel", &direction, "", 0, grid_y, grid_x).await + nvim.input_mouse("wheel", &direction, "", 0, grid_y as i64, grid_x as i64).await .expect("Mouse Scroll Failed"), UiCommand::Drag(grid_x, grid_y) => - nvim.input_mouse("left", "drag", "", 0, grid_y, grid_x).await + nvim.input_mouse("left", "drag", "", 0, grid_y as i64, grid_x as i64).await .expect("Mouse Drag Failed") } } diff --git a/src/window.rs b/src/window.rs index 7522aff..5c45b62 100644 --- a/src/window.rs +++ b/src/window.rs @@ -30,10 +30,10 @@ fn windows_fix_dpi() { fn handle_new_grid_size(new_size: LogicalSize, renderer: &Renderer) { if new_size.width > 0 && new_size.height > 0 { - let new_width = ((new_size.width + 1) as f32 / renderer.font_width) as i64; - let new_height = ((new_size.height + 1) as f32 / renderer.font_height) as i64; + let new_width = ((new_size.width + 1) as f32 / renderer.font_width) as u32; + let new_height = ((new_size.height + 1) as f32 / renderer.font_height) as u32; // Add 1 here to make sure resizing doesn't change the grid size on startup - BRIDGE.queue_command(UiCommand::Resize { width: new_width as i64, height: new_height as i64 }); + BRIDGE.queue_command(UiCommand::Resize { width: new_width, height: new_height }); } } @@ -83,7 +83,10 @@ pub fn ui_loop() { info!("renderer created"); let mut mouse_down = false; - let mut mouse_pos = (0, 0); + let mut mouse_position = LogicalSize { + width: 0, + height: 0 + }; let mut title = "Neovide".to_string(); let mut previous_size = LogicalSize::new(&window).unwrap(); @@ -136,20 +139,23 @@ pub fn ui_loop() { } }, Event::MouseMotion { x, y, .. } => { - let grid_x = (x as f32 / renderer.font_width) as i64; - let grid_y = (y as f32 / renderer.font_height) 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)); + let previous_position = mouse_position; + mouse_position = LogicalSize::from_physical_size_tuple(( + (x as f32 / renderer.font_width) as u32, + (y as f32 / renderer.font_height) as u32 + ), + &window + ).expect("Could not calculate logical mouse position"); + if mouse_down && previous_position != mouse_position { + BRIDGE.queue_command(UiCommand::Drag(mouse_position.width, mouse_position.height)); } }, Event::MouseButtonDown { .. } => { - BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("press"), position: mouse_pos }); + BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("press"), position: (mouse_position.width, mouse_position.height) }); mouse_down = true; }, Event::MouseButtonUp { .. } => { - BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("release"), position: mouse_pos }); + BRIDGE.queue_command(UiCommand::MouseButton { action: String::from("release"), position: (mouse_position.width, mouse_position.height) }); mouse_down = false; }, Event::MouseWheel { x, y, .. } => { @@ -162,7 +168,7 @@ pub fn ui_loop() { }; if let Some(input_type) = vertical_input_type { - BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); + BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: (mouse_position.width, mouse_position.height) }); } let horizontal_input_type = if x > 0 { @@ -174,7 +180,7 @@ pub fn ui_loop() { }; if let Some(input_type) = horizontal_input_type { - BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: mouse_pos }); + BRIDGE.queue_command(UiCommand::Scroll { direction: input_type.to_string(), position: (mouse_position.width, mouse_position.height) }); } }, _ => {} From f31f96e0bc6373215977658fb3d7bb4d81bb55cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Vald=C3=A9s?= Date: Tue, 18 Feb 2020 23:02:36 +0100 Subject: [PATCH 21/21] Adding a setting to change the refresh rate --- src/settings.rs | 1 + src/window.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/settings.rs b/src/settings.rs index b5bebc8..f8a1d70 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -183,6 +183,7 @@ impl Settings { settings.insert("no_idle".to_string(), Setting::new_bool(no_idle)); settings.insert("extra_buffer_frames".to_string(), Setting::new_u16(buffer_frames)); + settings.insert("refresh_rate".to_string(), Setting::new_u16(60)); Settings { neovim_arguments, settings: Mutex::new(settings) } } diff --git a/src/window.rs b/src/window.rs index 5c45b62..b8a9beb 100644 --- a/src/window.rs +++ b/src/window.rs @@ -215,7 +215,8 @@ pub fn ui_loop() { } let elapsed = frame_start.elapsed(); - let frame_length = Duration::from_secs_f32(1.0 / 60.0); + let refresh_rate = SETTINGS.get("refresh_rate").read_u16() as f32; + let frame_length = Duration::from_secs_f32(1.0 / refresh_rate); if elapsed < frame_length { sleep(frame_length - elapsed); }