3 unstable releases
0.2.0 | Mar 25, 2023 |
---|---|
0.1.1 | Oct 11, 2022 |
0.1.0 | Oct 11, 2022 |
#1340 in Development tools
21 downloads per month
17KB
266 lines
include-shader
A Rust macro for including shader files as string with dependencies support.
Setup
Although this library works on stable
, detection of shader file changes is not guaranteed due to caching. Therefore, it is recommended to use nightly
along with the track-path
feature enabled until the track_path
API stabilizes.
Nightly toolchain (recommended)
For the best experience, use nightly
to gain access to extra features:
- File tracking
- Relative path resolution
Add the following to your Cargo.toml
manifest file:
[dependencies]
include-shader = { version = "0.2.0", features = ["relative-path", "track-path"] }
Stable toolchain
Add the following to your Cargo.toml
manifest file:
[dependencies]
include-shader = "0.2.0"
Example
use include_shader::include_shader;
fn main() {
// ...
let frag_shader = compile_shader(
&context,
WebGl2RenderingContext::FRAGMENT_SHADER,
include_shader!("src/shaders/fragment_shader.glsl"),
)?;
// ...
}
Documentation
For more details on how to use this macro, see the documentation.
License
Distributed under the terms of both the MIT license and the Apache License (Version 2.0).
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.2–3MB
~55K SLoC