#glsl #optimization #opengl #glsl-shader #gles

glossy

A compile-time GLSL shader loader with #include support

2 unstable releases

Uses old Rust 2015

0.2.0 Oct 25, 2016
0.1.0 Oct 24, 2016

#910 in Graphics APIs


Used in glossy_codegen

MPL-2.0 license

2KB

Glossy is a GLSL source loading crate for Rust which supports the #include directive and shader optimization at compile time via glsl-optimizer.

Refer to the GitHub repository for more information.

Example Usage

In build script build.rs:

extern crate glossy_codegen as glsl;

void main() {
   glsl::Config::new(glsl::Language::OpenGl)
       .vertex("shaders/*.vert")
       .fragment("shaders/*.frag")
       .include("shaders/include/*")
       .optimize()
       .build();
}

In Rust source file main.rs:

#[macro_use]
extern crate glossy;
extern crate glium;

void main() {
    // ...
    glium::Program::from_source(gl, shader!("sprite.vert"), shader!("sprite.frag"), None)
        .unwrap();
    // ...
}

In shader source file shader.frag:

#version 120
#include "common.glsl"

void main() {
    float v = common_func(common_uniform);
    // ...
}

No runtime deps