Add Shader and Version
to simplify and constrain `program::create`
This commit is contained in:
parent
230db88fb2
commit
424e1d3fda
6 changed files with 157 additions and 135 deletions
|
|
@ -1,4 +1,4 @@
|
|||
use crate::program;
|
||||
use crate::program::{self, Shader};
|
||||
use crate::Transformation;
|
||||
use glow::HasContext;
|
||||
use iced_graphics::layer;
|
||||
|
|
@ -27,29 +27,23 @@ pub 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/compatibility/quad.vert"),
|
||||
);
|
||||
let fragment_shader = Shader::fragment(
|
||||
gl,
|
||||
shader_version,
|
||||
include_str!("../shader/compatibility/quad.frag"),
|
||||
);
|
||||
|
||||
program::create(
|
||||
gl,
|
||||
&[
|
||||
(
|
||||
glow::VERTEX_SHADER,
|
||||
&format!(
|
||||
"{}\n{}",
|
||||
vertex_version,
|
||||
include_str!("../shader/compatibility/quad.vert")
|
||||
),
|
||||
),
|
||||
(
|
||||
glow::FRAGMENT_SHADER,
|
||||
&format!(
|
||||
"{}\n{}",
|
||||
fragment_version,
|
||||
include_str!("../shader/compatibility/quad.frag")
|
||||
),
|
||||
),
|
||||
],
|
||||
&[vertex_shader, fragment_shader],
|
||||
&[
|
||||
(0, "i_Pos"),
|
||||
(1, "i_Scale"),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use crate::program;
|
||||
use crate::program::{self, Shader};
|
||||
use crate::Transformation;
|
||||
use glow::HasContext;
|
||||
use iced_graphics::layer;
|
||||
|
|
@ -22,29 +22,23 @@ pub 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/core/quad.vert"),
|
||||
);
|
||||
let fragment_shader = Shader::fragment(
|
||||
gl,
|
||||
shader_version,
|
||||
include_str!("../shader/core/quad.frag"),
|
||||
);
|
||||
|
||||
program::create(
|
||||
gl,
|
||||
&[
|
||||
(
|
||||
glow::VERTEX_SHADER,
|
||||
&format!(
|
||||
"{}\n{}",
|
||||
vertex_version,
|
||||
include_str!("../shader/core/quad.vert")
|
||||
),
|
||||
),
|
||||
(
|
||||
glow::FRAGMENT_SHADER,
|
||||
&format!(
|
||||
"{}\n{}",
|
||||
fragment_version,
|
||||
include_str!("../shader/core/quad.frag")
|
||||
),
|
||||
),
|
||||
],
|
||||
&[vertex_shader, fragment_shader],
|
||||
&[
|
||||
(0, "i_Pos"),
|
||||
(1, "i_Scale"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue