#spir-v #glsl-shader #glsl #shader #vulkan #macro #compile-time

glsl-to-spirv-macros-impl

这是 crate glsl-to-spirv-macros 的实现细节。请参阅该 crate 以获取更多信息

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年6月18日

#32#glsl-shader


ash-tray 使用

MIT/Apache

4KB
66

glsl-to-spirv-macros

Documentation

[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.0 许可证定义的任何有意提交以包含在作品中并由您提供的内容,均应如上所述双许可,而无需任何额外的条款或条件。

依赖关系

~10-19MB
~235K SLoC