summaryrefslogtreecommitdiffstats
path: root/glow/src/triangle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'glow/src/triangle.rs')
-rw-r--r--glow/src/triangle.rs27
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")],
)
};