72 lines
1.0 KiB
Rust
72 lines
1.0 KiB
Rust
use encase::ShaderType;
|
|
|
|
#[derive(ShaderType)]
|
|
struct S {
|
|
x: f32,
|
|
}
|
|
|
|
#[derive(ShaderType)]
|
|
struct WrappedF32 {
|
|
#[size(16)]
|
|
elem: f32,
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn test_struct() {
|
|
#[derive(ShaderType)]
|
|
struct TestStruct {
|
|
a: u32,
|
|
b: S,
|
|
}
|
|
|
|
TestStruct::assert_uniform_compat();
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn test_array() {
|
|
#[derive(ShaderType)]
|
|
struct TestArray {
|
|
a: u32,
|
|
b: [WrappedF32; 1],
|
|
}
|
|
|
|
TestArray::assert_uniform_compat();
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn test_struct_first() {
|
|
#[derive(ShaderType)]
|
|
struct TestStructFirst {
|
|
a: S,
|
|
b: f32,
|
|
}
|
|
|
|
TestStructFirst::assert_uniform_compat();
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn test_array_stride() {
|
|
#[derive(ShaderType)]
|
|
struct TestArrayStride {
|
|
a: [u32; 8],
|
|
}
|
|
|
|
TestArrayStride::assert_uniform_compat();
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn test_rts_array() {
|
|
#[derive(ShaderType)]
|
|
struct TestRTSArray {
|
|
#[size(runtime)]
|
|
a: Vec<f32>,
|
|
}
|
|
|
|
TestRTSArray::assert_uniform_compat();
|
|
}
|