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

glsl-to-spirv-macros

用于在编译时将 GLSL 着色器生成 SPIR-V 二进制文件以便与 Vulkan 一起使用的宏。要使用此包,您还必须使用 glsl-to-spirv-macros-impl 包

3 个版本

使用旧的 Rust 2015

0.1.1 2017 年 7 月 9 日
0.1.0 2017 年 6 月 18 日

#1035图形 API


ash-tray 中使用

MIT/Apache

8KB
132 代码行

glsl-to-spirv-macros

Documentation

[dependencies]
glsl-to-spirv-macros = "0.1.1"
glsl-to-spirv-macros-impl = "0.1.0"

Rust 宏,用于在编译时生成 SPIR-V 二进制文件以供 Vulkan 使用。

要使用此包,您还必须使用 glsl-to-spirv-macros-impl 包。

文档

使用此包在编译时将您的 GLSL 着色器编译成嵌入到您的程序中的二进制文件。

此包要求您还使用 glsl-to-spirv-macros-impl 包。没有它,这些宏将无法工作。不幸的是,目前尚无法将这两个包合并为一个。

示例用法

#[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");
}

此包中的所有宏都返回 &'static [u8],可用于 static 的定义以及局部变量。每个宏都接受一个字符串字面量,例如 "..."r#"..."# 等。

这些宏使用官方的 glslang 编译器生成与 Vulkan 兼容的 SPIR-V 二进制文件 - 它们不是为与其他 API(如 OpenCL)一起使用而设计的。

许可证

此库根据您的选择受以下任何一个许可证的约束

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在工作中的任何贡献,均应如上所述双重许可,无需任何额外条款或条件。

无运行时依赖