pub fn propagate_outputs(&mut self) {
        if self.geom_src.is_empty() {
            let vert_out = create_inputs(&self.vert_src, false);
            if !self.frag_src.is_empty() {
                prepend_code(&mut self.frag_src, &vert_out);
            }
        } else {
            if !self.frag_src.is_empty() {
                let geom_out = create_inputs(&self.geom_src, false);
                prepend_code(&mut self.frag_src, &geom_out);
            }
            
            let vert_out = create_inputs(&self.vert_src, true);
            prepend_code(&mut self.geom_src, &vert_out);
        }
    }
/// Inserts input declarations matching the output declarations of a previous shader stage into 
/// the next shader stage. For example, if the vertex source contains `out vec4 color;`, 
/// `in vec4 color;` will be added to the either the geometry or the fragment shader, depending 
/// on which one exists.
Inserts input declarations matching the output declarations of a previous shader stage into
the next shader stage. For example, if the vertex source contains `out vec4 color;`,
`in vec4 color;` will be added to the either the geometry or the fragment shader, depending
on which one exists.
Inserts input declarations matching the output declarations of a previous shader stage into the next shader stage . For example if the vertex source contains ` out vec4 color ; ` ` in vec4 color ; ` will be added to the either the geometry or the fragment shader depending on which one exists .
pub fn propagate_outputs(&mut self) {
        if self.geom_src.is_empty() {
            let vert_out = create_inputs(&self.vert_src, false);
            if !self.frag_src.is_empty() {
                prepend_code(&mut self.frag_src, &vert_out);
            }
        } else {
            if !self.frag_src.is_empty() {
                let geom_out = create_inputs(&self.geom_src, false);
                prepend_code(&mut self.frag_src, &geom_out);
            }
            let vert_out = create_inputs(&self.vert_src, true);
            prepend_code(&mut self.geom_src, &vert_out);
        }
    }
pub fn propagate_outputs ( & mut self ) { if self . geom_src . is_empty ( ) { let vert_out = create_inputs ( & self . vert_src , false ) ; if ! self . frag_src . is_empty ( ) { prepend_code ( & mut self . frag_src , & vert_out ) ; } } else { if ! self . frag_src . is_empty ( ) { let geom_out = create_inputs ( & self . geom_src , false ) ; prepend_code ( & mut self . frag_src , & geom_out ) ; } let vert_out = create_inputs ( & self . vert_src , true ) ; prepend_code ( & mut self . geom_src , & vert_out ) ; } }
Inserts input declarations matching the output declarations of a previous shader stage into
the next shader stage.
Inserts input declarations matching the output declarations of a previous shader stage into the next shader stage .
&mut self
&mut self