36 lines
		
	
	
		
			673 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			673 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| 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;
 | |
| }
 | 
