From 381052c50e8c3458a681ec4f2df6c74a40baf5d2 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 4 Nov 2021 19:26:49 -0300 Subject: Split `quad::Pipeline` into `core` and `compatibility` --- glow/src/triangle.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'glow/src/triangle.rs') diff --git a/glow/src/triangle.rs b/glow/src/triangle.rs index 9202bcb2..d0a05be6 100644 --- a/glow/src/triangle.rs +++ b/glow/src/triangle.rs @@ -26,10 +26,13 @@ impl Pipeline { program::create( gl, &[ - (glow::VERTEX_SHADER, include_str!("shader/triangle.vert")), + ( + glow::VERTEX_SHADER, + include_str!("shader/compatibility/triangle.vert"), + ), ( glow::FRAGMENT_SHADER, - include_str!("shader/triangle.frag"), + include_str!("shader/compatibility/triangle.frag"), ), ], ) -- cgit From e31566d430093fb084da2e7f4f4ed1b66326edef Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 11 Nov 2021 01:10:47 -0300 Subject: Improve shader version selection --- glow/src/triangle.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'glow/src/triangle.rs') diff --git a/glow/src/triangle.rs b/glow/src/triangle.rs index d0a05be6..91bb96ba 100644 --- a/glow/src/triangle.rs +++ b/glow/src/triangle.rs @@ -21,20 +21,32 @@ pub(crate) struct Pipeline { } impl Pipeline { - pub fn new(gl: &glow::Context) -> Pipeline { + pub fn new( + gl: &glow::Context, + (vertex_version, fragment_version): &(String, String), + ) -> Pipeline { let program = unsafe { program::create( gl, &[ ( glow::VERTEX_SHADER, - include_str!("shader/compatibility/triangle.vert"), + &format!( + "{}\n{}", + vertex_version, + include_str!("shader/common/triangle.vert") + ), ), ( glow::FRAGMENT_SHADER, - include_str!("shader/compatibility/triangle.frag"), + &format!( + "{}\n{}", + fragment_version, + include_str!("shader/common/triangle.frag") + ), ), ], + &[(0, "i_Position"), (1, "i_Color")], ) }; -- cgit From 424e1d3fda3c9e1764b567a3b05d33a9ed589fda Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 19 Jan 2022 22:04:53 -0300 Subject: Add `Shader` and `Version` to simplify and constrain `program::create` --- glow/src/triangle.rs | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) (limited to 'glow/src/triangle.rs') diff --git a/glow/src/triangle.rs b/glow/src/triangle.rs index 91bb96ba..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; @@ -23,29 +23,23 @@ pub(crate) struct Pipeline { impl Pipeline { pub fn new( gl: &glow::Context, - (vertex_version, fragment_version): &(String, String), + 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, - &format!( - "{}\n{}", - vertex_version, - include_str!("shader/common/triangle.vert") - ), - ), - ( - glow::FRAGMENT_SHADER, - &format!( - "{}\n{}", - fragment_version, - include_str!("shader/common/triangle.frag") - ), - ), - ], + &[vertex_shader, fragment_shader], &[(0, "i_Position"), (1, "i_Color")], ) }; -- cgit