Macro gl_utils::def_programs_include[][src]

macro_rules! def_programs_include {
    ( SHADERS [
      $($shader:ident, $sourcepath:expr),*
    ]
    PROGRAMS [
      $(
      program $program:ident {
        vertex_shader:   $vert_shader:ident
        $(tessellation_control_shader: $tess_ctrl_shader:ident
        tessellation_evaluation_shader: $tess_eval_shader:ident)*
        $(geometry_shader: $geom_shader:ident)*
        fragment_shader: $frag_shader:ident
      }
      )*
    ]
  ) => { ... };
    ( @def_programs
    SHADERS [ $($shader:ident),* ]
    PROGRAMS [
      $(
      program $program:ident {
        vertex_shader:   $vert_shader:ident
        $(tessellation_control_shader: $tess_ctrl_shader:ident
        tessellation_evaluation_shader: $tess_eval_shader:ident)*
        $(geometry_shader: $geom_shader:ident)*
        fragment_shader: $frag_shader:ident
      }
      )*
    ]
  ) => { ... };
    (
    @def_shaders $($shader:ident, $sourcepath:expr),*
  ) => { ... };
    (@option_shader $shaders:ident [$shader_id:ident]) => { ... };
    (@option_shader $shaders:ident []) => { ... };
}

Like def_programs! except that the shader source will be compiled-in with include_str!. The original source path is still available through the source_path method on shader IDs, but it is not required to be present when loading shaders.

Note that unlike def_programs! where paths are relative to the executable invocation directory, here paths are relative to the source file which is invoking the def_programs_include! macro.