use realms::data::Color;
use realms::input::{Event, Key};
use realms::shader::{Shader, ShaderProgram, ShaderType};
use realms::vertex::VertexBuffer;
use realms::window::Window;
fn main() {
let mut window = Window::new(800, 600, "We Have A Camera?").expect("Failed to create window");
let shader_program = ShaderProgram::new(vec![
Shader::load_str(ShaderType::Vertex, include_str!("shaders/vertex4.glsl")).unwrap(),
Shader::load_str(ShaderType::Fragment, include_str!("shaders/fragment4.glsl")).unwrap(),
])
.unwrap();
let vertices: [f32; 15] = [
0.0, 0.5, 0.0, 1.0, 0.0, -0.5, -0.5, 1.0, 0.0, 0.0, 0.5, -0.5, 0.0, 0.0, 1.0, ];
let elements: [u32; 3] = [0, 1, 2];
let vb = VertexBuffer::new(&vertices, &elements);
vb.set_layout(&[2, 3]);
let (mut camera_x, mut camera_y) = (0.0, 0.0);
while window.is_running() {
window.new_frame();
window.fill(Color::rgb(20, 34, 40));
for event in window.events() {
match event {
Event::KeyDown(Key::W) => camera_y += 0.1, Event::KeyDown(Key::S) => camera_y -= 0.1, Event::KeyDown(Key::A) => camera_x -= 0.1, Event::KeyDown(Key::D) => camera_x += 0.1, _ => {}
}
}
shader_program.uniform_2f("cameraPos", (camera_x, camera_y));
vb.draw(&shader_program); }
}