1 个不稳定版本
0.1.0 | 2020 年 4 月 9 日 |
---|
#11 in #em
用于 emu_core
7KB
79 行
此软件包使 GLSL-Rust 互操作成为可能。您可以使用 emu_glsl
与 emu_core
进行基于 GLSL 的 GPU 计算。
lib.rs
:
emu_glsl
是一个用于 GLSL-Rust 互操作的软件包。目前,它仅提供一个衍生宏 - glsl_struct
。此宏为在 emu_core
软件包中定义的特质 GlslStruct
进行衍生。这个特质看起来是这样的。
pub trait GlslStruct {
fn as_glsl() -> String; // return the GLSL struct definition of Self
}
emu_glsl
允许您为以下类型的简单结构体衍生此特质。
bool
i32
u32
f32
f64
[i32 | u32 | f32 | f64 | bool; 2 | 3 | 4]
这些可以直接转换为它们的 GLSL 等价物,数组则转换为 GLSL "向量数据类型"。以下是一个示例用法。(因为它缺少对 GlslStruct
特质和 glsl_struct
衍生宏的导入,所以无法编译。)
#[derive(GlslStruct)]
struct Polygon {
num_edges: u32,
radius: f64,
conv: bool, // make sure polygons in same thread block have same convexity
}
依赖项
~1.5MB
~35K SLoC