housekeeping for assignment 2a

This commit is contained in:
Michael Zhang 2023-04-07 00:04:19 -05:00
parent 62a1e102cd
commit 9484e91166
11 changed files with 18 additions and 112 deletions

View file

@ -1,7 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "assignment-2a-rust"
version = "0.1.0"

View file

@ -1,10 +0,0 @@
[package]
name = "assignment-2a-rust"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.70"
glfw = "0.51.0"

View file

@ -1,9 +0,0 @@
// fragment shader template
#version 150
in vec4 vcolor;
out vec4 color;
void main() {
color = vcolor; // set output color to interpolated color from vshader
}

View file

@ -1,12 +0,0 @@
// vertex shader template
#version 150
in vec4 vertex_position;
in vec4 vertex_color;
out vec4 vcolor;
uniform mat4 M;
void main() {
gl_Position = M * vertex_position; // update vertex position using M
vcolor = vertex_color; // pass vertex color to fragment shader
}

View file

@ -1,3 +0,0 @@
pub fn init() {
}

View file

@ -1,50 +0,0 @@
extern crate glfw;
mod init;
mod shaders;
use anyhow::{Context as _, Result};
use glfw::{Action, Context, Key, OpenGlProfileHint, WindowHint};
fn main() -> Result<()> {
let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap();
// Ask for OpenGL 3.2
glfw.window_hint(WindowHint::ContextVersionMajor(3));
glfw.window_hint(WindowHint::ContextVersionMajor(2));
glfw.window_hint(WindowHint::OpenGlProfile(OpenGlProfileHint::Core));
glfw.window_hint(WindowHint::OpenGlForwardCompat(true));
// Use GLFW to open a window within which to display your graphics
let (mut window, events) = glfw
.create_window(300, 300, "Hello this is window", glfw::WindowMode::Windowed)
.context("Failed to create GLFW window.")?;
// Tells the system to wait for the rendered frame to finish updating
// before swapping buffers; can help to avoid tearing
glfw.set_swap_interval(glfw::SwapInterval::Sync(1));
// Create the shaders and perform other one-time initializations
init::init();
window.set_key_polling(true);
window.make_current();
while !window.should_close() {
glfw.poll_events();
for (_, event) in glfw::flush_messages(&events) {
handle_window_event(&mut window, event);
}
}
Ok(())
}
fn handle_window_event(window: &mut glfw::Window, event: glfw::WindowEvent) {
match event {
glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) => {
window.set_should_close(true)
}
_ => {}
}
}

View file

@ -1,10 +0,0 @@
use std::path::Path;
use glfw::Glfw;
pub fn init_shader(
glfw: &Glfw,
vs_path: impl AsRef<Path>,
fs_path: impl AsRef<Path>,
) {
}

View file

@ -35,10 +35,11 @@ add_subdirectory(ext/glfw)
# Make a list of all the source files
set(
SOURCES
src/main.cpp
ext/glad/src/glad.c
src/HW2a.cpp
src/controls.cpp
src/util.cpp
ext/glad/src/glad.c
)
# Make a list of all the header files (optional-- only necessary to make them appear in IDE)

View file

@ -11,10 +11,6 @@
#include <stdio.h>
#include <stdlib.h>
#define DEBUG_ON \
0 // repetitive of the debug flag in the shader loading code, included here
// for clarity only
#include "shaders.h"
#include "controls.h"
@ -192,11 +188,12 @@ int main(int argc, char **argv) {
}
// sanity check that your matrix contents are what you expect them to be
spdlog::debug(
"M = [{} {} {} {}\n {} {} {} {}\n {} {} {} {}\n {} {} "
"{} {}]\n",
M[0], M[4], M[8], M[12], M[1], M[5], M[9], M[13], M[2], M[6], M[10],
M[14], M[3], M[7], M[11], M[15]);
spdlog::debug("M = [{} {} {} {}\n"
" {} {} {} {}\n"
" {} {} {} {}\n"
" {} {} {} {}]\n",
M[0], M[4], M[8], M[12], M[1], M[5], M[9], M[13], M[2], M[6],
M[10], M[14], M[3], M[7], M[11], M[15]);
// send the updated model transformation matrix to the GPU
glUniformMatrix4fv(m_location, 1, GL_FALSE, M);

View file

View file

@ -0,0 +1,9 @@
#ifndef STATE_H_
#define STATE_H_
/// The state of the program
struct State {
int mouse_x, mouse_y;
};
#endif