diff --git a/Cargo.lock b/Cargo.lock index e176a9c1d..3e4d2dc54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -905,7 +905,6 @@ dependencies = [ "fj-interop", "fj-math", "fj-viewer", - "fj-window", "thiserror 2.0.12", "tracing", "tracing-subscriber", @@ -966,6 +965,7 @@ dependencies = [ "bytemuck", "fj-interop", "fj-math", + "futures", "getrandom 0.2.15", "image", "nalgebra", @@ -974,6 +974,7 @@ dependencies = [ "tobj", "tracing", "wgpu", + "winit", ] [[package]] diff --git a/crates/fj-viewer/Cargo.toml b/crates/fj-viewer/Cargo.toml index dcb66e9cc..8ff208714 100644 --- a/crates/fj-viewer/Cargo.toml +++ b/crates/fj-viewer/Cargo.toml @@ -17,11 +17,13 @@ workspace = true [dependencies] fj-interop.workspace = true fj-math.workspace = true +futures = "0.3.31" nalgebra = "0.33.2" tobj = "4.0.3" raw-window-handle = "0.6.0" thiserror = "2.0.12" tracing = "0.1.41" +winit = "0.30.9" [dependencies.bytemuck] version = "1.22.0" diff --git a/crates/fj-window/src/display.rs b/crates/fj-viewer/src/display.rs similarity index 96% rename from crates/fj-window/src/display.rs rename to crates/fj-viewer/src/display.rs index fb6f81118..eee3626b8 100644 --- a/crates/fj-window/src/display.rs +++ b/crates/fj-viewer/src/display.rs @@ -1,8 +1,4 @@ use fj_interop::Model; -use fj_viewer::{ - DEFAULT_CAMERA_TUNING_CONFIG, InputEvent, RendererInitError, Screen, - ScreenSize, Viewer, -}; use futures::executor::block_on; use winit::{ application::ApplicationHandler, @@ -16,7 +12,11 @@ use winit::{ window::WindowId, }; -use crate::window::{self, Window}; +use crate::{ + DEFAULT_CAMERA_TUNING_CONFIG, InputEvent, RendererInitError, Screen, + ScreenSize, Viewer, + window::{self, Window}, +}; /// Display the provided mesh in a window that processes input pub fn display(model: Model, invert_zoom: bool) -> Result<(), Error> { @@ -122,8 +122,8 @@ impl ApplicationHandler for DisplayState { } WindowEvent::MouseInput { state, button, .. } => { let button = match button { - MouseButton::Left => Some(fj_viewer::MouseButton::Left), - MouseButton::Right => Some(fj_viewer::MouseButton::Right), + MouseButton::Left => Some(crate::MouseButton::Left), + MouseButton::Right => Some(crate::MouseButton::Right), _ => None, }; diff --git a/crates/fj-viewer/src/lib.rs b/crates/fj-viewer/src/lib.rs index bcbbe93bd..7330ff324 100644 --- a/crates/fj-viewer/src/lib.rs +++ b/crates/fj-viewer/src/lib.rs @@ -10,15 +10,19 @@ mod assets; mod camera; +mod display; mod graphics; mod input; mod screen; mod viewer; +mod window; pub use self::{ + display::{Error, display}, graphics::{DeviceError, RendererInitError}, input::InputEvent, input::{CameraTuningConfig, DEFAULT_CAMERA_TUNING_CONFIG, MouseButton}, screen::{NormalizedScreenPosition, Screen, ScreenSize}, viewer::Viewer, + window::WindowError, }; diff --git a/crates/fj-window/src/window.rs b/crates/fj-viewer/src/window.rs similarity index 98% rename from crates/fj-window/src/window.rs rename to crates/fj-viewer/src/window.rs index ba7986b4b..e92b71ef4 100644 --- a/crates/fj-window/src/window.rs +++ b/crates/fj-viewer/src/window.rs @@ -1,8 +1,9 @@ use std::sync::Arc; -use fj_viewer::{Screen, ScreenSize}; use winit::event_loop::ActiveEventLoop; +use crate::{Screen, ScreenSize}; + /// A window that can be used with `fj-viewer` pub struct Window { inner: Arc, diff --git a/crates/fj-window/src/lib.rs b/crates/fj-window/src/lib.rs index 6461b0320..255ec8e60 100644 --- a/crates/fj-window/src/lib.rs +++ b/crates/fj-window/src/lib.rs @@ -4,14 +4,8 @@ //! split into multiple libraries that can be used semi-independently, and this //! is one of those. //! -//! This library provides a window abstraction based on Winit. +//! This library has been deprecated. Its contents have moved into +//! [`fj-viewer`]. //! //! [Fornjot]: https://www.fornjot.app/ - -mod display; -mod window; - -pub use self::{ - display::{Error, display}, - window::WindowError, -}; +//! [`fj-viewer`]: https://crates.io/crates/fj-viewer diff --git a/crates/fj/Cargo.toml b/crates/fj/Cargo.toml index cd31db614..17bc74b14 100644 --- a/crates/fj/Cargo.toml +++ b/crates/fj/Cargo.toml @@ -20,7 +20,6 @@ fj-export.workspace = true fj-interop.workspace = true fj-math.workspace = true fj-viewer.workspace = true -fj-window.workspace = true thiserror = "2.0.12" tracing = "0.1.41" diff --git a/crates/fj/src/instance.rs b/crates/fj/src/instance.rs index 3107995f6..62e8306d2 100644 --- a/crates/fj/src/instance.rs +++ b/crates/fj/src/instance.rs @@ -90,7 +90,7 @@ impl Instance { let model = Model { mesh, aabb }; - crate::window::display(model, false)?; + crate::viewer::display(model, false)?; Ok(()) } @@ -108,7 +108,7 @@ pub enum Error { /// Error displaying model #[error("Error displaying model")] - Display(#[from] crate::window::Error), + Display(#[from] crate::viewer::Error), /// Error exporting model #[error("Error exporting model")] diff --git a/crates/fj/src/lib.rs b/crates/fj/src/lib.rs index dc25e3fe4..2d35a7282 100644 --- a/crates/fj/src/lib.rs +++ b/crates/fj/src/lib.rs @@ -22,4 +22,3 @@ pub use fj_export as export; pub use fj_interop as interop; pub use fj_math as math; pub use fj_viewer as viewer; -pub use fj_window as window;