Fixed color renderer

This commit is contained in:
2018-10-31 11:55:17 +01:00
parent 8bea93e865
commit 28189bbd33
4 changed files with 33 additions and 14 deletions
+5 -1
View File
@@ -33,6 +33,10 @@ impl From<io::Error> for ExportError {
/// Exports a 3D model to a certain format.
pub trait Exporter {
/// If an exporter wants to send some return value during the export.
type Output;
/// The type of errors the exporter will return in case of errors.
///
/// The errors can be of many things, we can't know everything in this create, so this type
@@ -40,7 +44,7 @@ pub trait Exporter {
type Error;
/// Performs the export in the specified output directory.
fn export(&self, model: &Model, output_dir: &str) -> Result<(), Self::Error>;
fn export(&self, model: &Model, output_dir: &str) -> Result<Self::Output, Self::Error>;
}
/// Serialize a 3D element.
+21 -12
View File
@@ -11,6 +11,7 @@ use glium::{Frame, Display, Surface, Program, DrawParameters, Depth, VertexBuffe
use glium::draw_parameters::{DepthTest, Blend};
use glium::index::{NoIndices, PrimitiveType};
use glium::glutin::GlWindow;
use glium::program::ProgramCreationInput;
use scene::Scene;
use camera::{RenderCamera, mat_to_f32};
@@ -59,22 +60,30 @@ impl Renderer {
/// Creates the program with the default shader.
pub fn default_shader(display: &Display) -> Program {
Program::from_source(
display,
include_str!("../assets/shaders/default.vert"),
include_str!("../assets/shaders/default.frag"),
None
).unwrap()
Program::new(display, ProgramCreationInput::SourceCode {
vertex_shader: include_str!("../assets/shaders/default.vert"),
fragment_shader: include_str!("../assets/shaders/default.frag"),
geometry_shader: None,
tessellation_control_shader: None,
tessellation_evaluation_shader: None,
transform_feedback_varyings: None,
outputs_srgb: false,
uses_point_size: false,
}).unwrap()
}
/// Creates the shader with one color per face.
pub fn color_shader(display: &Display) -> Program {
Program::from_source(
display,
include_str!("../assets/shaders/color.vert"),
include_str!("../assets/shaders/color.frag"),
None
).unwrap()
Program::new(display, ProgramCreationInput::SourceCode {
vertex_shader: include_str!("../assets/shaders/color.vert"),
fragment_shader: include_str!("../assets/shaders/color.frag"),
geometry_shader: None,
tessellation_control_shader: None,
tessellation_evaluation_shader: None,
transform_feedback_varyings: None,
outputs_srgb: true,
uses_point_size: false,
}).unwrap()
}
/// Creates a new renderer from a display.