mirror of
https://github.com/griffi-gh/kubi.git
synced 2024-11-22 06:48:43 -06:00
Compare commits
2 commits
ec592951bc
...
3f8056b6ea
Author | SHA1 | Date | |
---|---|---|---|
griffi-gh | 3f8056b6ea | ||
griffi-gh | b596deeaed |
|
@ -6,13 +6,9 @@ use winit::{
|
||||||
window::{WindowBuilder, Fullscreen, Window},
|
window::{WindowBuilder, Fullscreen, Window},
|
||||||
dpi::PhysicalSize
|
dpi::PhysicalSize
|
||||||
};
|
};
|
||||||
use glium::{Display, Surface, Version, Api};
|
use glium::{Display, Surface, Version, Api as GlApiTy};
|
||||||
use glutin::{
|
use glutin::{
|
||||||
prelude::*,
|
config::{Api, ConfigTemplateBuilder}, context::{ContextAttributesBuilder, GlProfile}, display::GetGlDisplay, prelude::*, surface::{SurfaceAttributesBuilder, WindowSurface}
|
||||||
context::{ContextAttributesBuilder, GlProfile},
|
|
||||||
surface::{WindowSurface, SurfaceAttributesBuilder},
|
|
||||||
display::GetGlDisplay,
|
|
||||||
config::ConfigTemplateBuilder
|
|
||||||
};
|
};
|
||||||
use glutin_winit::DisplayBuilder;
|
use glutin_winit::DisplayBuilder;
|
||||||
use glam::{Vec3, UVec2};
|
use glam::{Vec3, UVec2};
|
||||||
|
@ -96,6 +92,7 @@ impl Renderer {
|
||||||
.with_window_builder(Some(wb));
|
.with_window_builder(Some(wb));
|
||||||
|
|
||||||
let config_template_builder = ConfigTemplateBuilder::new()
|
let config_template_builder = ConfigTemplateBuilder::new()
|
||||||
|
.with_api(Api::GLES3)
|
||||||
.prefer_hardware_accelerated(Some(true))
|
.prefer_hardware_accelerated(Some(true))
|
||||||
.with_depth_size(24)
|
.with_depth_size(24)
|
||||||
.with_multisampling(settings.msaa.unwrap_or_default());
|
.with_multisampling(settings.msaa.unwrap_or_default());
|
||||||
|
@ -156,7 +153,7 @@ impl Renderer {
|
||||||
if display.is_robust() { log::warn!("OpenGL implementation is not robust") }
|
if display.is_robust() { log::warn!("OpenGL implementation is not robust") }
|
||||||
if display.is_debug() { log::info!("OpenGL context is in debug mode") }
|
if display.is_debug() { log::info!("OpenGL context is in debug mode") }
|
||||||
|
|
||||||
assert!(display.is_glsl_version_supported(&Version(Api::GlEs, 3, 0)), "GLSL ES 3.0 is not supported");
|
assert!(display.is_glsl_version_supported(&Version(GlApiTy::GlEs, 3, 0)), "GLSL ES 3.0 is not supported");
|
||||||
|
|
||||||
Self { window, display }
|
Self { window, display }
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,9 +74,9 @@ pub fn draw_world(
|
||||||
if let Some(key) = chunk.mesh_index {
|
if let Some(key) = chunk.mesh_index {
|
||||||
let mesh = meshes.get(key).expect("Mesh index pointing to nothing");
|
let mesh = meshes.get(key).expect("Mesh index pointing to nothing");
|
||||||
let world_position = position.as_vec3() * CHUNK_SIZE as f32;
|
let world_position = position.as_vec3() * CHUNK_SIZE as f32;
|
||||||
|
|
||||||
//Skip mesh if its empty
|
//Skip mesh if its empty
|
||||||
if mesh.index_buffer.len() == 0 {
|
if mesh.index_buffer.len() == 0 && mesh.trans_index_buffer.len() == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,19 +90,21 @@ pub fn draw_world(
|
||||||
}
|
}
|
||||||
|
|
||||||
//Draw chunk mesh
|
//Draw chunk mesh
|
||||||
target.0.draw(
|
if mesh.index_buffer.len() > 0 {
|
||||||
&mesh.vertex_buffer,
|
target.0.draw(
|
||||||
&mesh.index_buffer,
|
&mesh.vertex_buffer,
|
||||||
&program.0,
|
&mesh.index_buffer,
|
||||||
&uniform! {
|
&program.0,
|
||||||
position_offset: world_position.to_array(),
|
&uniform! {
|
||||||
view: view,
|
position_offset: world_position.to_array(),
|
||||||
perspective: perspective,
|
view: view,
|
||||||
tex: texture_sampler,
|
perspective: perspective,
|
||||||
discard_alpha: true,
|
tex: texture_sampler,
|
||||||
},
|
discard_alpha: true,
|
||||||
&draw_parameters
|
},
|
||||||
).unwrap();
|
&draw_parameters
|
||||||
|
).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
if mesh.trans_index_buffer.len() > 0 {
|
if mesh.trans_index_buffer.len() > 0 {
|
||||||
enqueue_trans.push((chunk, mesh));
|
enqueue_trans.push((chunk, mesh));
|
||||||
|
|
Loading…
Reference in a new issue