diff --git a/extern/glow b/extern/glow index 44e230db0cc299666a85f088f01bca1355c0d2aa..4dc614d68c0eb5b65e5d605720a51aca12541d0e 160000 --- a/extern/glow +++ b/extern/glow @@ -1 +1 @@ -Subproject commit 44e230db0cc299666a85f088f01bca1355c0d2aa +Subproject commit 4dc614d68c0eb5b65e5d605720a51aca12541d0e diff --git a/extern/typed-geometry b/extern/typed-geometry index b841da8247d26dc30a8f634188f4fca9960b9558..b694f841b56ad8d95c7a4a58f6efaa4081ad2fd6 160000 --- a/extern/typed-geometry +++ b/extern/typed-geometry @@ -1 +1 @@ -Subproject commit b841da8247d26dc30a8f634188f4fca9960b9558 +Subproject commit b694f841b56ad8d95c7a4a58f6efaa4081ad2fd6 diff --git a/tests/glow/uniforms.cc b/tests/glow/uniforms.cc index 01e239411132f575a5ad4b39c267e8202ab9b40a..0c3183c76e3c0547c15ee1b5e2a2d766e5bbd36c 100644 --- a/tests/glow/uniforms.cc +++ b/tests/glow/uniforms.cc @@ -28,6 +28,7 @@ TEST_CASE("glow uniform interface") uniform bool uBools[5]; uniform vec3 uColor3s[3]; uniform uvec3 uUVec3; + uniform float uFloatCArray[4]; void main() { @@ -62,6 +63,10 @@ TEST_CASE("glow uniform interface") data[i++] = uUVec3.x; data[i++] = uUVec3.y; data[i++] = uUVec3.z; + data[i++] = uFloatCArray[0]; + data[i++] = uFloatCArray[1]; + data[i++] = uFloatCArray[2]; + data[i++] = uFloatCArray[3]; } )"); auto prog = glow::Program::create(csh); @@ -109,6 +114,9 @@ TEST_CASE("glow uniform interface") shader.uniform<tg::usize3>("uUVec3") = {13, 14, 15}; + float a[4] = {4, 5, 6, 7}; + shader.uniform<float[]>("uFloatCArray") = a; + shader.compute(1); } @@ -156,5 +164,10 @@ TEST_CASE("glow uniform interface") CHECK(data[i++] == 13); CHECK(data[i++] == 14); CHECK(data[i++] == 15); + // uFloatCArray + CHECK(data[i++] == 4); + CHECK(data[i++] == 5); + CHECK(data[i++] == 6); + CHECK(data[i++] == 7); } }