 132d331870
			
		
	
	
		132d331870
		
	
	
	
	
		
			
			This commit adds support for copying nested hierarchical types of split types. E.g, a struct of a struct containing both user and builtin interstage IO variables. When copying split types, if any subtree does NOT contain builtin interstage IO, we can copy the whole subtree with one assignment, which saves a bunch of AST verbosity for memberwise copies of that subtree.
		
			
				
	
	
		
			22 lines
		
	
	
		
			431 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			431 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| struct PSInput
 | |
| {
 | |
|     float4 Pos      : SV_POSITION;
 | |
|     float2 TexCoord : TEXCOORD;
 | |
|     float3 TerrainPos : TERRAINPOS;
 | |
|     uint VertexID : VertexID;
 | |
| };
 | |
| 
 | |
| typedef PSInput foo_t[2][3];
 | |
| 
 | |
| [maxvertexcount(4)]
 | |
| void main(point uint v[1] : VertexID, inout TriangleStream<PSInput> OutputStream)
 | |
| {
 | |
|     foo_t Verts;
 | |
| 
 | |
|     PSInput Out = (PSInput) 0;
 | |
| 
 | |
|     for (int x=0; x<2; ++x)
 | |
|         for (int y=0; y<2; ++y)
 | |
|             Verts[x][y] = Out;
 | |
| }
 |