#glsl #optimization #opengl #build-dependencies #glsl-shader #gles

glossy_codegen

glossy的构建依赖,一个支持#include指令的编译时GLSL着色器加载器

1个不稳定版本

使用旧的Rust 2015

0.2.0 2016年10月25日

#4#优化

MPL-2.0 许可证

21KB
410

glossy

一个Rust的GLSL源代码加载库,支持#include指令,并通过glsl-optimizer在编译时进行着色器优化。

示例用法

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

lib.rs:

这是glossy的代码生成/构建脚本组件。

有关详细信息,请参阅glossy模块。

依赖项

~4.5MB
~91K SLoC