diff options
-rw-r--r-- | Cargo.lock | 4 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/bin/br.rs | 9 | ||||
-rw-r--r-- | src/emulators.rs | 1 | ||||
-rw-r--r-- | src/emulators/graphical_emulator.rs | 2 |
5 files changed, 14 insertions, 4 deletions
@@ -889,8 +889,8 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phosphor" -version = "3.0.0" -source = "git+git://benbridle.com/phosphor?tag=v3.0.0#47a754a7beb8741bfe0469236036cb8023043cd8" +version = "3.1.0" +source = "git+git://benbridle.com/phosphor?tag=v3.1.0#f69c4065488f792a51641a126ba58ec541819f22" dependencies = [ "buffer", "event_queue", @@ -8,7 +8,7 @@ description = "Emulator for running Bedrock programs" [dependencies] bedrock-asm = { git = "git://benbridle.com/bedrock_asm", tag = "v4.0.0" } bedrock-core = { git = "git://benbridle.com/bedrock_core", tag = "v5.0.0" } -phosphor = { git = "git://benbridle.com/phosphor", tag = "v3.0.0" } +phosphor = { git = "git://benbridle.com/phosphor", tag = "v3.1.0" } geometry = { git = "git://benbridle.com/geometry", tag = "v1.0.0" } time = { version = "0.3.30", features = [ "local-offset" ] } diff --git a/src/bin/br.rs b/src/bin/br.rs index ce823d9..bf3befe 100644 --- a/src/bin/br.rs +++ b/src/bin/br.rs @@ -56,6 +56,7 @@ fn main_run(args: Run) { fullscreen: args.fullscreen, scale: args.scale(), debug_palette: args.palette(), + show_cursor: args.show_cursor, initial_transmission: None, decode_stdin: args.decode_stdin, encode_stdout: args.encode_stdout, @@ -66,6 +67,10 @@ fn main_run(args: Run) { verbose!("Starting graphical emulator"); let mut phosphor = phosphor.unwrap(); config.dimensions = args.dimensions().unwrap(); + let cursor = match config.show_cursor { + true => Some(CursorIcon::Default), + false => None, + }; let mut graphical = GraphicalEmulator::new(&config, args.debug); graphical.load_program(&bytecode); @@ -83,8 +88,8 @@ fn main_run(args: Run) { fullscreen: graphical.fullscreen, scale: graphical.scale, title: Some(program_name), + cursor, icon: None, - cursor: None, program: Box::new(graphical), }; @@ -326,6 +331,8 @@ xflags::xflags! { optional -z, --zoom factor: u32 /// Set a debug colour palette in the format <rgb>,... (toggle with F2) optional --palette colours: ParsedPalette + /// Show the operating system cursor over the window + optional --show-cursor /// Decode standard input optional -i, --decode-stdin /// Encode standard output diff --git a/src/emulators.rs b/src/emulators.rs index a2e9091..fcebe1d 100644 --- a/src/emulators.rs +++ b/src/emulators.rs @@ -20,6 +20,7 @@ pub struct EmulatorConfig { pub fullscreen: bool, pub scale: u32, pub debug_palette: Option<[Colour; 16]>, + pub show_cursor: bool, pub initial_transmission: Option<Vec<u8>>, pub decode_stdin: bool, diff --git a/src/emulators/graphical_emulator.rs b/src/emulators/graphical_emulator.rs index 1e048de..a183262 100644 --- a/src/emulators/graphical_emulator.rs +++ b/src/emulators/graphical_emulator.rs @@ -107,6 +107,7 @@ pub struct GraphicalEmulator { pub render_mark: Instant, pub debug_palette: Option<[Colour; 16]>, pub show_debug_palette: bool, + pub show_cursor: bool, } impl GraphicalEmulator { @@ -121,6 +122,7 @@ impl GraphicalEmulator { render_mark: Instant::now(), debug_palette: config.debug_palette, show_debug_palette: config.debug_palette.is_some(), + show_cursor: config.show_cursor, } } |