#glsl #source-string #opengl #directive #expanding #context

glsl-include

一个用于扩展GLSL源字符串中#include指令的库

7个版本

0.3.1 2019年3月2日
0.3.0 2019年3月2日
0.2.3 2018年4月14日
0.1.0 2018年4月9日

#54 in 数据格式

Download history 64/week @ 2024-03-11 58/week @ 2024-03-18 35/week @ 2024-03-25 74/week @ 2024-04-01 126/week @ 2024-04-08 53/week @ 2024-04-15 57/week @ 2024-04-22 69/week @ 2024-04-29 71/week @ 2024-05-06 37/week @ 2024-05-13 68/week @ 2024-05-20 44/week @ 2024-05-27 122/week @ 2024-06-03 73/week @ 2024-06-10 71/week @ 2024-06-17 49/week @ 2024-06-24

319 每月下载量
3 crates 中使用

MIT/Apache

13KB
162

glsl-include — 构建状态 构建状态-win 最新版本

glsl-include是一个用于扩展GLSL源字符串中#include指令的Rust库


快速入门

Cargo.toml

[dependencies]
glsl-include = "0.3"

main.rs

extern crate glsl_include;
use glsl_include::Context;

fn main () {
    let main = r"
        #version 410
        #include <platform.glsl>
        #include <common.glsl>
        out vec4 fragColor;
        void main () {
            fragColor = vec4(1.0);
        }";
    let platform = "void platform_fn() {}";
    let common = "uniform float iTime;";
    let expanded_src = Context::new()
        .include("platform.glsl", platform)
        .include("common.glsl",common)
        .expand(main).unwrap();
}

#pragma include

该库还扩展了无需额外配置的#pragma include语句。

基准测试

cargo bench

我目前用于基准测试更改集的工作流程

git checkout master; cargo bench
git checkout feature-branch; cargo bench

为了获得最佳的criterion结果,请安装gnuplot(macos: brew install gnuplot

许可

根据您的选择,许可如下

贡献

除非您明确表示,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中并由您提供的内容,将根据上述条款双许可,无需任何附加条款或条件。

依赖关系

~2.2–3MB
~54K SLoC