#glsl #emu #compute #em #computer-vision

emu_glsl

GLSL-Rust 互操作工具包

1 个不稳定版本

0.1.0 2020 年 4 月 9 日

#11 in #em


用于 emu_core

MIT 许可协议

7KB
79

此软件包使 GLSL-Rust 互操作成为可能。您可以使用 emu_glslemu_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