opengl_sdk/src/main.rs

48 lines
1.5 KiB
Rust

use proj::{
app::app::App, assets, backend::opengl, geometry::{AttributeType, Mesh, MeshBuilder, VertexFormat, VertexSemantic}, math::{Mat4, Vec2, Vec4}, models::{self, Model}, shaders::{FRAGMENT_SHADER_2D, FRAGMENT_SHADER_SOURCE, VERTEX_SHADER_2D, VERTEX_SHADER_SOURCE, inputs::ShaderInputs}
};
use winit::event_loop::EventLoop;
const HOUSE_OBJ_PATH: &str = "assets/models/small_house/model.obj";
const HOUSE_MAT_PATH: &str = "assets/models/small_house/materials.mtl";
const BUGATTI_OBJ_PATH: &str = "assets/models/bugatti/bugatti.obj";
const BUGATTI_MTL_PATH: &str = "assets/models/bugatti/bugatti.mtl";
fn main() {
dotenvy::dotenv().ok();
let event_loop = EventLoop::new()
.expect("Should be able to have Event Loop");
let shader_src = opengl::GlShaderSource {
vertex_src: VERTEX_SHADER_2D.to_string(),
fragment_src: FRAGMENT_SHADER_2D.to_string(),
};
let mut app = App::<opengl::GlBackend>::new();
let mesh = Mesh::builder("triangle", VertexFormat::ui_2d())
.begin_vertex()
.position2(Vec2::new(0.0, 0.5))
.color(Vec4::new(1.0, 0.0, 0.0, 1.0))
.end_vertex()
.begin_vertex()
.position2(Vec2::new(-0.5, -0.5))
.color(Vec4::new(1.0, 1.0, 0.0, 1.0))
.end_vertex()
.begin_vertex()
.position2(Vec2::new(0.5, -0.5))
.color(Vec4::new(0.0, 0.0, 1.0, 1.0))
.end_vertex()
.build();
app.meshes.push(mesh);
app.add_shader(shader_src);
let event_res = event_loop.run_app(&mut app);
println!("{:#?}", event_res);
}