Once we're down to something that's not another nested expr list, use TypeConvertExpr() to convert the expression to the type we need. This should allow simplifying a number of the GetConstant() implementations, to remove partial reimplementation of type conversion there. For now, this change finishes off issue #220.
29 lines
445 B
Plaintext
29 lines
445 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
|
|
typedef float (*func)();
|
|
|
|
float foo();
|
|
float bar();
|
|
|
|
struct X { func f, g; };
|
|
|
|
static uniform X x = { foo, &bar };
|
|
|
|
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
|
RET[programIndex] = x.f() + x.g();
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
RET[programIndex] = programIndex;
|
|
}
|
|
|
|
float foo() {
|
|
return 2 * programIndex;
|
|
}
|
|
|
|
float bar() {
|
|
return -programIndex;
|
|
}
|