summaryrefslogtreecommitdiffstats
path: root/tests/front-end/struct.slang
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-06-12 12:42:17 -0700
committerTim Foley <tfoley@nvidia.com>2017-06-12 13:00:47 -0700
commit5b49974bd6ddd248b5ee1b1e29c0acfc3c422a3a (patch)
tree2e939a9ef7b972944b71ea3f7d11a17af844c3fe /tests/front-end/struct.slang
parentd1f11a29f8a48eecd47ac64c8635ed062cba982d (diff)
Rename tests from `*.spire` to `*.slang`
Many of the existing test cases were being skipped on accident, because their file names used `.spire` and the test tool was now looking for `.slang`
Diffstat (limited to 'tests/front-end/struct.slang')
-rw-r--r--tests/front-end/struct.slang49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/front-end/struct.slang b/tests/front-end/struct.slang
new file mode 100644
index 000000000..16b1bebc7
--- /dev/null
+++ b/tests/front-end/struct.slang
@@ -0,0 +1,49 @@
+//TEST:SIMPLE:
+// test that `struct` decls work
+
+// Note(tfoley): disabled during syntax transition
+// #include "pipeline-simple.slang.h"
+
+// struct declaration
+struct Foo
+{
+ float3 a;
+ float3 b;
+};
+
+// function on a struct
+Foo makeFoo(float x, float y)
+{
+ // local of struct type
+ Foo foo;
+ foo.a = float3(x);
+ foo.b = float3(y);
+ return foo;
+}
+
+/* Note(tfoley): disabled during syntax transition
+
+template shader Test()
+// targets StandardPipeline
+{
+ // Uniform of struct type
+ param Foo foo1;
+
+ @MeshVertex float3 position;
+ @MeshVertex float3 color;
+
+ param mat4 modelViewProjection;
+
+ public vec4 projCoord = modelViewProjection * vec4(position, 1.0);
+
+ // Component of struct type
+ // Note(tfoley): use of `public` here required to work around parser limitations
+ public Foo foo2 = makeFoo(color.x, color.y);
+
+ //
+ float3 result = foo1.a + foo2.b;
+
+ out @Fragment vec4 colorTarget = vec4(result,1);
+}
+
+*/ \ No newline at end of file