Add support for enums.
This commit is contained in:
16
tests/enum-1.ispc
Normal file
16
tests/enum-1.ispc
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
RET[programIndex] = ONE;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1;
|
||||
}
|
||||
18
tests/enum-2.ispc
Normal file
18
tests/enum-2.ispc
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
RET[programIndex] = TEN;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 10;
|
||||
}
|
||||
18
tests/enum-3.ispc
Normal file
18
tests/enum-3.ispc
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
RET[programIndex] = ELEVEN;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 11;
|
||||
}
|
||||
26
tests/enum-4.ispc
Normal file
26
tests/enum-4.ispc
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
enum Bar {
|
||||
FIFTY = 50,
|
||||
THOUSAND = 1000
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo = (Foo)((a == 1.) ? ELEVEN : FIFTY);
|
||||
RET[programIndex] = (int)foo;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 50;
|
||||
RET[0] = 11;
|
||||
}
|
||||
26
tests/enum-5.ispc
Normal file
26
tests/enum-5.ispc
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
enum Bar {
|
||||
FIFTY = 50,
|
||||
THOUSAND = 1000
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform Foo f = ONE;
|
||||
int g = ++f;
|
||||
RET[programIndex] = g-1;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1;
|
||||
}
|
||||
26
tests/enum-6.ispc
Normal file
26
tests/enum-6.ispc
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
enum Bar {
|
||||
FIFTY = 50,
|
||||
THOUSAND = 1000
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform Foo f = ONE;
|
||||
++f;
|
||||
RET[programIndex] = (int)f;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 2;
|
||||
}
|
||||
27
tests/enum-7.ispc
Normal file
27
tests/enum-7.ispc
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
enum Bar {
|
||||
FIFTY = 50,
|
||||
THOUSAND = 1000
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform Foo f = ONE;
|
||||
Foo vf = f;
|
||||
++vf;
|
||||
RET[programIndex] = (int)vf;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 2;
|
||||
}
|
||||
26
tests/enum-8.ispc
Normal file
26
tests/enum-8.ispc
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
enum Foo {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO,
|
||||
TEN = 10,
|
||||
ELEVEN
|
||||
};
|
||||
|
||||
enum Bar {
|
||||
FIFTY = 50,
|
||||
THOUSAND = 1000
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
Foo Func(Foo f) { return ++f; }
|
||||
Bar Func(Bar b) { return FIFTY; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
RET[programIndex] = (int)Func(ONE);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 2;
|
||||
}
|
||||
16
tests/enum-9.ispc
Normal file
16
tests/enum-9.ispc
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
enum {
|
||||
ZERO,
|
||||
ONE,
|
||||
TWO
|
||||
};
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
RET[programIndex] = ONE;
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user