7 releases
0.3.1 | Mar 2, 2019 |
---|---|
0.3.0 | Mar 2, 2019 |
0.2.3 | Apr 14, 2018 |
0.1.0 | Apr 9, 2018 |
#61 in Data formats
436 downloads per month
Used in 3 crates
13KB
162 lines
glsl-include
glsl-include is a rust library for expanding #include directives in GLSL source strings
Quick Start
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
The library also expands #pragma include
statements with no additonal configuration required.
Benchmarks
cargo bench
The workflow I currently use for benchmarking a changeset:
git checkout master; cargo bench
git checkout feature-branch; cargo bench
For the best results with criterion, install gnuplot
(macos: brew install gnuplot
)
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~2.3–3MB
~55K SLoC