summaryrefslogtreecommitdiff
path: root/racer-tracer/src/scene_controller.rs
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/scene_controller.rs')
-rw-r--r--racer-tracer/src/scene_controller.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/racer-tracer/src/scene_controller.rs b/racer-tracer/src/scene_controller.rs
index 4a867f5..3ca5b70 100644
--- a/racer-tracer/src/scene_controller.rs
+++ b/racer-tracer/src/scene_controller.rs
@@ -3,8 +3,13 @@ pub mod interactive;
use slog::Logger;
use crate::{
- camera::Camera, config::Config, error::TracerError, image::Image, key_inputs::KeyCallback,
- scene::Scene, terminal::Terminal,
+ camera::Camera,
+ config::Config,
+ error::TracerError,
+ image::Image,
+ key_inputs::{KeyCallback, MouseCallback},
+ scene::Scene,
+ terminal::Terminal,
};
pub fn create_screen_buffer(image: &Image) -> Vec<u32> {
@@ -23,7 +28,9 @@ pub struct SceneData {
pub trait SceneController: Send + Sync {
// Return a vector of key callbacks. The provided closure will be
// called when the corresponding key is release/pressed.
- fn get_inputs(&self) -> Vec<KeyCallback>;
+ fn key_inputs(&self) -> Vec<KeyCallback>;
+
+ fn mouse_input(&self) -> Option<MouseCallback>;
// Render function
fn render(&self) -> Result<(), TracerError>;