1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年6月18日 |
---|
#32 在 #glsl-shader
被 ash-tray 使用
4KB
66 行
glsl-to-spirv-macros
[dependencies]
glsl-to-spirv-macros = "0.1.1"
glsl-to-spirv-macros-impl = "0.1.0"
Rust 宏,用于在编译时生成与 Vulkan 一起使用的 SPIR-V 二进制文件。
要使用此 crate,您还必须使用 glsl-to-spirv-macros-impl crate。
文档
使用此 crate 在编译时将您的 GLSL 着色器编译成程序中嵌入的二进制文件。
此 crate 需要您同时使用 glsl-to-spirv-macros-impl
crate。没有它,这些宏将无法工作。遗憾的是,目前无法将这两个 crate 合并为一个。
示例用法
#[macro_use] extern crate glsl_to_spirv_macros;
#[macro_use] extern crate glsl_to_spirv_macros_impl;
static some_shader: &'static [u8] = glsl_vs!{r#"
// Shader code here
"#};
fn main() {
let another_shader = include_glsl_fs!("path/to/shader");
}
此 crate 中所有宏都返回 &'static [u8]
,可以用于 static
的定义以及局部变量。每个宏都接受一个字符串字面量,例如 "..."
、r#"..."#
等。
这些宏使用官方的 glslang 编译器生成与 Vulkan 兼容的 SPIR-V 二进制文件,它们不适用于其他 API,如 OpenCL。
许可证
此库根据您选择的许可证进行许可
- Apache 许可证第 2 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
供您选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中并由您提供的内容,均应如上所述双许可,而无需任何额外的条款或条件。
依赖关系
~10-19MB
~235K SLoC