mirror of https://github.com/Leinnan/doppler.git
Better log system
This commit is contained in:
parent
4ab3fee655
commit
d916cf3c18
|
|
@ -3,3 +3,4 @@
|
|||
**jpg
|
||||
**jpeg
|
||||
imgui.ini
|
||||
log.log
|
||||
|
|
@ -153,6 +153,8 @@ dependencies = [
|
|||
"imgui-inspect",
|
||||
"imgui-inspect-derive",
|
||||
"inline_tweak",
|
||||
"log",
|
||||
"simple-logging",
|
||||
"tobj",
|
||||
]
|
||||
|
||||
|
|
@ -790,6 +792,17 @@ dependencies = [
|
|||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "simple-logging"
|
||||
version = "2.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b00d48e85675326bb182a2286ea7c1a0b264333ae10f27a937a72be08628b542"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"log",
|
||||
"thread-id",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.4.2"
|
||||
|
|
@ -822,6 +835,17 @@ dependencies = [
|
|||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thread-id"
|
||||
version = "3.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thread_local"
|
||||
version = "1.0.1"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ imgui-inspect-derive = "0.5.0"
|
|||
tobj = "2.0.2"
|
||||
human-panic = "1.0.3"
|
||||
inline_tweak = "1.0.8"
|
||||
log = "0.4.11"
|
||||
simple-logging = "2.0.2"
|
||||
image2 = { git = "https://github.com/Leinnan/image2-rs", branch="legacy", default-features = false, features=["io"] }
|
||||
|
||||
[profile.dev.package."*"]
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ impl ExampleClient {
|
|||
pub fn create(_window: &glfw::Window) -> ExampleClient {
|
||||
let sky = unsafe { Sky::new() };
|
||||
ExampleClient {
|
||||
object_info_id: 0,
|
||||
show_camera_info: true,
|
||||
show_object_info: false,
|
||||
models: vec![],
|
||||
camera: Camera {
|
||||
position: Point3::new(0.0, 8.0, 13.0),
|
||||
|
|
@ -42,6 +39,9 @@ impl ExampleClient {
|
|||
},
|
||||
lighting_system: LightingSystem::default(),
|
||||
sky: sky,
|
||||
object_info_id: 0,
|
||||
show_camera_info: false,
|
||||
show_object_info: false,
|
||||
show_light_info: false,
|
||||
light_info_id: 0,
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@ impl Client for ExampleClient {
|
|||
fn load_assets(&mut self, cache: &mut AssetsCache) {
|
||||
let ground = ModelComponent {
|
||||
transform: Transform {
|
||||
scale: vec3(0.5, 0.5, 0.5),
|
||||
scale: 0.56,
|
||||
..Transform::default()
|
||||
},
|
||||
model: cache.get_model("resources/objects/ground/ground.obj"),
|
||||
|
|
@ -64,7 +64,7 @@ impl Client for ExampleClient {
|
|||
let tree = ModelComponent {
|
||||
transform: Transform {
|
||||
position: vec3(10.0, 0.0, 26.0),
|
||||
scale: vec3(2.5, 2.5, 2.5),
|
||||
scale: 2.5,
|
||||
..Transform::default()
|
||||
},
|
||||
model: cache.get_model_ext("resources/objects/tree/tree_6_d.obj", Some("tree_e.png")),
|
||||
|
|
@ -72,7 +72,7 @@ impl Client for ExampleClient {
|
|||
let tree2 = ModelComponent {
|
||||
transform: Transform {
|
||||
position: vec3(-9.0, 0.0, -15.0),
|
||||
scale: vec3(2.5, 2.5, 2.5),
|
||||
scale: 2.5,
|
||||
..Transform::default()
|
||||
},
|
||||
model: cache.get_model_ext("resources/objects/tree/tree_6_c.obj", Some("tree_e.png")),
|
||||
|
|
@ -80,7 +80,7 @@ impl Client for ExampleClient {
|
|||
let tree3 = ModelComponent {
|
||||
transform: Transform {
|
||||
position: vec3(15.0, 0.0, -7.0),
|
||||
scale: vec3(2.5, 2.5, 2.5),
|
||||
scale: 2.5,
|
||||
..Transform::default()
|
||||
},
|
||||
model: cache.get_model_ext("resources/objects/tree/tree_6_c.obj", Some("tree_e.png")),
|
||||
|
|
@ -151,14 +151,14 @@ impl Client for ExampleClient {
|
|||
{
|
||||
self.show_light_info = !self.show_light_info;
|
||||
}
|
||||
if MenuItem::new(im_str!("Show camera info"))
|
||||
.selected(self.show_camera_info)
|
||||
.build(ui)
|
||||
{
|
||||
self.show_camera_info = !self.show_camera_info;
|
||||
}
|
||||
menu.end(ui);
|
||||
}
|
||||
if MenuItem::new(im_str!("Toggle Camera Info"))
|
||||
.selected(self.show_camera_info)
|
||||
.build(ui)
|
||||
{
|
||||
self.show_camera_info = !self.show_camera_info;
|
||||
}
|
||||
menu_bar.end(ui);
|
||||
}
|
||||
if self.show_camera_info {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ use crate::gaia::model::Model;
|
|||
use crate::gaia::utils::load_texture_from_dir;
|
||||
use std::collections::HashMap;
|
||||
use std::path::Path;
|
||||
use log::{info, trace, warn};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct AssetsCache {
|
||||
|
|
@ -15,7 +16,7 @@ impl AssetsCache {
|
|||
match self.models.get(path) {
|
||||
Some(model) => model.clone(),
|
||||
None => {
|
||||
println!("Loading model: {}", path);
|
||||
info!("Loading model: {}", path);
|
||||
let model = Model::new(path, self);
|
||||
self.models.insert(path.to_string(), model.clone());
|
||||
model
|
||||
|
|
@ -27,7 +28,7 @@ impl AssetsCache {
|
|||
match self.models.get(path) {
|
||||
Some(model) => model.clone(),
|
||||
None => {
|
||||
println!("Loading model: {}", path);
|
||||
info!("Loading model: {}", path);
|
||||
let model = Model::new_ext(path, diff_texture, self);
|
||||
self.models.insert(path.to_string(), model.clone());
|
||||
model
|
||||
|
|
@ -40,7 +41,6 @@ impl AssetsCache {
|
|||
Some(texture) => texture.clone(),
|
||||
None => {
|
||||
let directory: String = dir.into();
|
||||
println!("Loading texture: {}", path);
|
||||
let texture = Texture {
|
||||
id: unsafe { load_texture_from_dir(path, &directory) },
|
||||
type_: type_name.into(),
|
||||
|
|
|
|||
|
|
@ -7,20 +7,19 @@ use imgui_inspect_derive::Inspect;
|
|||
|
||||
#[derive(Inspect, Clone, Copy, Debug)]
|
||||
pub struct Transform {
|
||||
#[inspect(proxy_type = "CgmathVec3f32")]
|
||||
pub scale: Vector3<f32>,
|
||||
#[inspect(proxy_type = "CgmathVec3f32")]
|
||||
pub position: Vector3<f32>,
|
||||
#[inspect(proxy_type = "CgmathVec3f32")]
|
||||
pub rotation: Vector3<f32>,
|
||||
pub scale: f32,
|
||||
}
|
||||
|
||||
impl Default for Transform {
|
||||
fn default() -> Transform {
|
||||
Transform {
|
||||
position: vec3(0.0, 0.0, 0.0),
|
||||
scale: vec3(1.0, 1.0, 1.0),
|
||||
rotation: vec3(0.0, 0.0, 0.0),
|
||||
scale: 1.0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -28,7 +27,7 @@ impl Default for Transform {
|
|||
impl Transform {
|
||||
pub fn get_matrix(&self) -> Matrix4<f32> {
|
||||
let mut m = Matrix4::<f32>::from_translation(self.position);
|
||||
m = m * Matrix4::from_nonuniform_scale(self.scale.x, self.scale.y, self.scale.z);
|
||||
m = m * Matrix4::from_scale(self.scale);
|
||||
m = m * Matrix4::<f32>::from_angle_x(Rad(self.rotation.x.to_radians()));
|
||||
m = m * Matrix4::<f32>::from_angle_y(Rad(self.rotation.y.to_radians()));
|
||||
m = m * Matrix4::<f32>::from_angle_z(Rad(self.rotation.z.to_radians()));
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use imgui_glfw_rs::glfw;
|
|||
use imgui_glfw_rs::glfw::{Action, Context, Key};
|
||||
use imgui_glfw_rs::imgui;
|
||||
use imgui_glfw_rs::ImguiGLFW;
|
||||
use log::{info, trace, warn};
|
||||
|
||||
pub struct Engine {
|
||||
pub camera: Camera,
|
||||
|
|
@ -270,7 +271,6 @@ impl Default for Engine {
|
|||
let client = ExampleClient::create(&window);
|
||||
let (scr_width, scr_height) = window.get_framebuffer_size();
|
||||
let fb = unsafe { FramebufferSystem::generate(scr_width, scr_height) };
|
||||
println!("{:?}", fb);
|
||||
|
||||
Engine {
|
||||
bg_info: BgInfo::default(),
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ use gl::types::*;
|
|||
use std::mem;
|
||||
use std::os::raw::c_void;
|
||||
use std::ptr;
|
||||
use log::{info, trace, warn};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct FramebufferSystem {
|
||||
|
|
@ -48,6 +49,7 @@ impl FramebufferSystem {
|
|||
gl::DrawArrays(gl::TRIANGLES, 0, 6);
|
||||
}
|
||||
pub unsafe fn generate(scr_width: i32, scr_height: i32) -> Self {
|
||||
info!("Generating new framebuffer with dimensions {}x{}",scr_width,scr_height);
|
||||
let screenShader = Shader::from_file(
|
||||
"resources/shaders/framebuffers_screen.vs",
|
||||
"resources/shaders/framebuffers_screen.fs",
|
||||
|
|
@ -136,10 +138,12 @@ impl FramebufferSystem {
|
|||
); // now actually attach it
|
||||
// now that we actually created the framebuffer and added all attachments we want to check if it is actually complete now
|
||||
if gl::CheckFramebufferStatus(gl::FRAMEBUFFER) != gl::FRAMEBUFFER_COMPLETE {
|
||||
println!("ERROR::FRAMEBUFFER:: Framebuffer is not complete!");
|
||||
warn!("ERROR::FRAMEBUFFER:: Framebuffer is not complete!");
|
||||
}
|
||||
gl::BindFramebuffer(gl::FRAMEBUFFER, 0);
|
||||
|
||||
info!("New framebuffer generated");
|
||||
|
||||
FramebufferSystem {
|
||||
texture_color_buffer: textureColorbuffer,
|
||||
shader: screenShader,
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use crate::gaia::utils::*;
|
|||
use cgmath::{vec2, vec3};
|
||||
use std::path::Path;
|
||||
use tobj;
|
||||
use log::{info, trace, warn};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Model {
|
||||
|
|
@ -50,7 +51,7 @@ impl Model {
|
|||
// loads a model from file and stores the resulting meshes in the meshes vector.
|
||||
fn load_model(&mut self, path: &str, diffuse_path: Option<&str>, cache: &mut AssetsCache) {
|
||||
let path = Path::new(path);
|
||||
println!("Started loading model from path: {}", path.display());
|
||||
// println!("Started loading model from path: {}", path.display());
|
||||
|
||||
// retrieve the directory path of the filepath
|
||||
self.directory = path
|
||||
|
|
@ -114,7 +115,7 @@ impl Model {
|
|||
}
|
||||
// NOTE: no height maps
|
||||
} else if diffuse_path.is_some() {
|
||||
println!("Loading {}", &diffuse_path.unwrap());
|
||||
// println!("Loading {}", &diffuse_path.unwrap());
|
||||
let texture = cache.get_material_texture(
|
||||
&self.directory,
|
||||
&diffuse_path.unwrap(),
|
||||
|
|
@ -122,11 +123,11 @@ impl Model {
|
|||
);
|
||||
textures.push(texture);
|
||||
} else {
|
||||
println!("There are no materials for: {}", path.display());
|
||||
warn!("There are no materials for: {}", path.display());
|
||||
}
|
||||
|
||||
self.meshes.push(Mesh::new(vertices, indices, textures));
|
||||
}
|
||||
println!("Finished loading model from path: {}", path.display());
|
||||
info!("Finished loading model");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,12 @@ use gl;
|
|||
use image2::image::Image;
|
||||
use image2::{io, ImagePtr, Rgb, Rgba};
|
||||
use std::os::raw::c_void;
|
||||
use log::{info, trace, warn};
|
||||
|
||||
pub unsafe fn load_texture(path: &str, file_format: &str) -> u32 {
|
||||
println!(
|
||||
"[stb]Loading texture from path: {} with format {}",
|
||||
path, file_format
|
||||
info!(
|
||||
"Loading texture: {}",
|
||||
path
|
||||
);
|
||||
let mut id = 0;
|
||||
|
||||
|
|
|
|||
10
src/main.rs
10
src/main.rs
|
|
@ -2,14 +2,22 @@
|
|||
|
||||
extern crate gl;
|
||||
extern crate imgui_glfw_rs;
|
||||
use human_panic::setup_panic;
|
||||
extern crate log;
|
||||
extern crate simple_logging;
|
||||
|
||||
#[macro_use]
|
||||
mod gaia;
|
||||
mod example_client;
|
||||
|
||||
use log::LevelFilter;
|
||||
use log::{info, trace, warn};
|
||||
use human_panic::setup_panic;
|
||||
use crate::gaia::engine::Engine;
|
||||
|
||||
pub fn main() {
|
||||
setup_panic!();
|
||||
simple_logging::log_to_file("log.log", LevelFilter::Info);
|
||||
info!("Starting engine!");
|
||||
let mut engine = Engine::default();
|
||||
|
||||
engine.run();
|
||||
|
|
|
|||
Loading…
Reference in New Issue