mirror of
				https://gitlab.winehq.org/wine/vkd3d.git
				synced 2025-09-12 18:50:22 -07:00 
			
		
		
		
	A struct declaration with variables is now absorbed into the 'declaration' rule, like any other variable declaration. A struct declaration without variables is now reduced to the 'struct_declaration_without_vars' rule. They both are reduced to a 'declaration_statement' in the end.
		
			
				
	
	
		
			53 lines
		
	
	
		
			813 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			813 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [pixel shader]
 | |
| float4 main() : sv_target
 | |
| {
 | |
|     float a = 2.0, b = a + 1.0, c = b;
 | |
| 
 | |
|     return float4(a, b, c, 0);
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw quad
 | |
| probe all rgba (2, 3, 3, 0)
 | |
| 
 | |
| 
 | |
| [pixel shader fail]
 | |
| float4 main() : sv_target
 | |
| {
 | |
|     float a = 2.0, b = c + 1.0, c = b;
 | |
| 
 | |
|     return float4(0);
 | |
| }
 | |
| 
 | |
| 
 | |
| [pixel shader]
 | |
| float4 main() : sv_target
 | |
| {
 | |
|     struct apple {
 | |
|         float a;
 | |
|         int b;
 | |
|     } apple1 = {7.2, 8.1}, apple2 = apple1;
 | |
| 
 | |
|     return float4(apple1.a, apple1.b, apple2.a, apple2.b);
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw quad
 | |
| probe all rgba (7.2, 8.0, 7.2, 8.0)
 | |
| 
 | |
| 
 | |
| [pixel shader]
 | |
| float4 main() : sv_target
 | |
| {
 | |
|     struct apple {
 | |
|         float a;
 | |
|         int b;
 | |
|     } apple1 = {5.2, 9.1}, apples[2] = {apple1, apple1};
 | |
| 
 | |
|     return float4(apples[0].a, apples[0].b, apples[1].a, apples[1].b);
 | |
| }
 | |
| 
 | |
| [test]
 | |
| draw quad
 | |
| probe all rgba (5.2, 9.0, 5.2, 9.0)
 |