This commit is contained in:
Piotr 2020-09-23 00:07:43 +02:00
parent a051b6d6ce
commit f30d198463
10 changed files with 53 additions and 33 deletions

22
src/gaia/bg_info.rs Normal file
View File

@ -0,0 +1,22 @@
use imgui_glfw_rs::imgui;
use imgui_inspect_derive::Inspect;
#[derive(Inspect)]
pub struct BgInfo {
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub r : f32,
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub g: f32,
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub b: f32,
}
impl Default for BgInfo {
fn default() -> Self {
BgInfo{
r: 0.1,
g: 0.2,
b: 0.4
}
}
}

View File

@ -138,4 +138,8 @@ impl Camera {
self.Right = self.Front.cross(self.WorldUp).normalize(); // Normalize the vectors, because their length gets closer to 0 the more you look up or down which results in slower movement.
self.Up = self.Right.cross(self.Front).normalize();
}
pub fn enable_mouse_movement(&mut self, enable: bool) {
self.MouseSensitivity = if enable { SENSITIVTY } else { 0.0 };
}
}

View File

@ -1,5 +1,3 @@
#![macro_use]
/// Macro to get c strings from literals without runtime overhead
/// Literal must not contain any interior nul bytes!
macro_rules! c_str {

9
src/gaia/mod.rs Normal file
View File

@ -0,0 +1,9 @@
pub mod camera;
pub mod consts;
pub mod utils;
#[macro_use]
pub mod macros;
pub mod shader;
pub mod model;
pub mod mesh;
pub mod bg_info;

View File

@ -13,7 +13,7 @@ use tobj;
use crate::mesh::{ Mesh, Texture, Vertex };
use crate::shader::Shader;
use crate::engine::*;
use crate::utils::*;
// #[derive(Default)]
pub struct Model {

View File

@ -10,11 +10,21 @@ use gl::types::*;
use cgmath::prelude::*;
use cgmath::{Matrix, Matrix4, Vector3};
use crate::gaia::consts;
pub struct Shader {
pub ID: u32,
}
impl Default for Shader {
fn default() -> Self {
let vShaderCode = CString::new(consts::VERTEX_SHADER_SRC.as_bytes()).unwrap();
let fShaderCode = CString::new(consts::FRAGMENT_SHADER_SRC.as_bytes()).unwrap();
Shader::new(vShaderCode, fShaderCode)
}
}
/// NOTE: mixture of `shader_s.h` and `shader_m.h` (the latter just contains
/// a few more setters for uniforms)
#[allow(dead_code)]

View File

@ -5,44 +5,20 @@ extern crate image;
use imgui_glfw_rs::glfw;
// Use the reexported imgui crate to avoid version conflicts.
use imgui_glfw_rs::imgui;
use imgui_inspect_derive::Inspect;
use imgui_inspect::InspectArgsStruct;
use imgui_inspect::InspectArgsSlider;
use imgui_glfw_rs::ImguiGLFW;
use self::camera::*;
use imgui_inspect::InspectArgsStruct;
use self::gl::types::*;
use imgui_glfw_rs::glfw::{Action, Context, Key};
use cgmath::prelude::*;
use cgmath::{perspective, vec3, Deg, Matrix4, Point3, Rad, Vector3};
use human_panic::setup_panic;
mod camera;
mod consts;
mod engine;
mod macros;
mod shader;
mod model;
mod mesh;
#[derive(Inspect)]
pub struct BgInfo {
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub r : f32,
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub g: f32,
#[inspect_slider(min_value = 0.0, max_value = 1.0)]
pub b: f32,
}
impl Default for BgInfo {
fn default() -> Self {
BgInfo{
r: 0.1,
g: 0.2,
b: 0.4
}
}
}
#[macro_use]
mod gaia;
use crate::gaia::camera::*;
use crate::gaia::*;
use crate::gaia::bg_info::BgInfo;
pub fn main() {
setup_panic!();
@ -275,4 +251,5 @@ pub fn process_input(window: &mut glfw::Window, delta_time: f32, camera: &mut Ca
if window.get_key(Key::D) == Action::Press {
camera.process_keyboard(Camera_Movement::RIGHT, delta_time);
}
camera.enable_mouse_movement(window.get_key(Key::LeftControl) != Action::Press);
}