diff --git a/Cargo.toml b/Cargo.toml index 952a559..2860ff2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,15 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "rustpt_cli" +path = "src/cli_tool.rs" + +[[bin]] +name = "rustpt_gui" +path = "src/gui_tool.rs" + [dependencies] rand = { version = "0.8.5", features = ["small_rng"] } itertools = { version = "0.11.0" } +eframe = "0.25.0" diff --git a/src/main.rs b/src/cli_tool.rs similarity index 94% rename from src/main.rs rename to src/cli_tool.rs index 236851d..7e3f941 100644 --- a/src/main.rs +++ b/src/cli_tool.rs @@ -1,18 +1,14 @@ -mod primitives; -mod scene; -mod renderer; - -use crate::primitives::{ +use rustpt::primitives::{ Vec2i, Vec3, }; -use crate::scene::{ +use rustpt::scene::{ Camera, Scene }; -use crate::renderer::{ +use rustpt::renderer::{ Tile, RenderProperties, }; diff --git a/src/gui_tool.rs b/src/gui_tool.rs new file mode 100644 index 0000000..e7d5bf1 --- /dev/null +++ b/src/gui_tool.rs @@ -0,0 +1,36 @@ +#![warn(clippy::all, rust_2018_idioms)] +use eframe::{egui, Frame}; + +fn main() -> Result<(), eframe::Error> { + let options = eframe::NativeOptions { + viewport: egui::ViewportBuilder::default() + .with_inner_size([800.0, 600.0]) + .with_min_inner_size([50.0, 50.0]) + .with_title("RustPT GUI Tool"), + ..Default::default() + }; + eframe::run_native( + "app name?", + options, + Box::new( + | cc | Box::new(RtApp::new(cc)) + )) +} + +#[derive(Default)] +struct RtApp; + +impl RtApp { + fn new(cc: &eframe::CreationContext<'_>) -> Self { + Self::default() + } +} + +impl eframe::App for RtApp { + fn update(&mut self, ctx: &egui::Context, frame: &mut Frame) { + egui::SidePanel::left("Render Properties").show(ctx, |ui| { + ui.heading("Render Properties"); + ui.label("") + }); + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..547a137 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,4 @@ +#![warn(clippy::all, rust_2018_idioms, rust_2018_compatibility)] +pub mod primitives; +pub mod scene; +pub mod renderer;