48 lines
1.5 KiB
Rust
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);
|
|
}
|