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.rs34
1 files changed, 14 insertions, 20 deletions
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")],
)
};