include-shader

Crates.ioinclude-shader
lib.rsinclude-shader
version0.2.0
sourcesrc
created_at2022-10-11 02:20:30.375894
updated_at2023-03-25 23:39:56.984591
descriptionA macro for including shader files as string with dependencies support.
homepage
repositoryhttps://github.com/adrienblanchard/include-shader
max_upload_size
id684986
size29,551
Adrien Blanchard (adrienblanchard)

documentation

README

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.

Commit count: 23

cargo fmt