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

光滑

一个编译时 GLSL 着色器加载器,支持 #include 指令

2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2016 年 10 月 25 日
0.1.0 2016 年 10 月 24 日

4#gles


用于 glossy_codegen

MPL-2.0 许可证

2KB

光滑是一个为 Rust 提供的 GLSL 源代码加载器,它支持编译时的 #include 指令和通过 glsl-optimizer 进行的着色器优化。

有关更多信息,请参阅 GitHub 存储库

示例用法

在构建脚本 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();
}

在 Rust 源文件 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();
    // ...
}

在着色器源文件 shader.frag

#version 120
#include "common.glsl"

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

无运行时依赖