Library & multiple binaries

Been playing with EGUI, and I'm gonna patch in a GUI app. The CLI
version will need to kick around, too, but be separate from the GUI one.
Enter: A multi-target crate!
This commit is contained in:
2024-01-28 13:30:42 -06:00
parent a701b9407b
commit 8e37fd8e97
4 changed files with 52 additions and 7 deletions

View File

@@ -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"

View File

@@ -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,
};

36
src/gui_tool.rs Normal file
View File

@@ -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("")
});
}
}

4
src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
#![warn(clippy::all, rust_2018_idioms, rust_2018_compatibility)]
pub mod primitives;
pub mod scene;
pub mod renderer;