diff options
Diffstat (limited to 'glow/src/triangle.rs')
-rw-r--r-- | glow/src/triangle.rs | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/glow/src/triangle.rs b/glow/src/triangle.rs index 9202bcb2..ae4f83ef 100644 --- a/glow/src/triangle.rs +++ b/glow/src/triangle.rs @@ -1,5 +1,5 @@ //! Draw meshes of triangles. -use crate::program; +use crate::program::{self, Shader}; use crate::Transformation; use glow::HasContext; use iced_graphics::layer; @@ -21,17 +21,26 @@ pub(crate) struct Pipeline { } impl Pipeline { - pub fn new(gl: &glow::Context) -> Pipeline { + pub fn new( + gl: &glow::Context, + shader_version: &program::Version, + ) -> Pipeline { let program = unsafe { + let vertex_shader = Shader::vertex( + gl, + shader_version, + include_str!("shader/common/triangle.vert"), + ); + let fragment_shader = Shader::fragment( + gl, + shader_version, + include_str!("shader/common/triangle.frag"), + ); + program::create( gl, - &[ - (glow::VERTEX_SHADER, include_str!("shader/triangle.vert")), - ( - glow::FRAGMENT_SHADER, - include_str!("shader/triangle.frag"), - ), - ], + &[vertex_shader, fragment_shader], + &[(0, "i_Position"), (1, "i_Color")], ) }; |