mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 19:40:06 +00:00
3778979cd4
Thanks to @steve-lunarg for his input and discussions on handling member functions.
36 lines
673 B
GLSL
Executable File
36 lines
673 B
GLSL
Executable File
static float2 i = float2(1.0, 2.0);
|
|
|
|
struct type1
|
|
{
|
|
void setmem(float4 m) { memVar = m; }
|
|
void seti(int si) { i = si; }
|
|
float4 memVar;
|
|
float4 memFun(float4 a) : SV_Position
|
|
{
|
|
return i * a + memVar;
|
|
}
|
|
int memFun(int a) : SV_Position
|
|
{
|
|
return i + a - memVar.z;
|
|
}
|
|
int i;
|
|
};
|
|
|
|
static float2 j = i;
|
|
|
|
struct type2
|
|
{
|
|
float2 memFun() { return i; }
|
|
};
|
|
|
|
float4 main() : SV_Target0
|
|
{
|
|
type1 test;
|
|
test.setmem(float4(2.0,2.0,2.0,2.0));
|
|
test.seti(17);
|
|
float4 f4 = float4(1.0,1.0,1.0,1.0);
|
|
f4 += test.memFun(float4(5.0f,5.0f,5.0f,5.0f));
|
|
f4 += test.memFun(7);
|
|
return f4;
|
|
}
|