mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-31 08:16:03 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			633 B
		
	
	
	
		
			Metal
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			633 B
		
	
	
	
		
			Metal
		
	
	
	
	
	
| #include <metal_stdlib>
 | |
| using namespace metal;
 | |
| 
 | |
| struct VSOutput
 | |
| {
 | |
|     float4 color [[user(locn0)]];
 | |
|     float4 position [[position]];
 | |
| };
 | |
| 
 | |
| #ifdef VERTEX
 | |
| 
 | |
| struct UBO
 | |
| {
 | |
|     float4x4 modelViewProj;
 | |
| };
 | |
| 
 | |
| struct VSInput
 | |
| {
 | |
|     float3 position [[attribute(0)]];
 | |
|     float3 color [[attribute(1)]];
 | |
| };
 | |
| 
 | |
| vertex VSOutput vs_main(VSInput input [[stage_in]], constant UBO& ubo [[buffer(0)]])
 | |
| {
 | |
|     VSOutput output;
 | |
|     output.color = float4(input.color, 1.0);
 | |
|     output.position = ubo.modelViewProj * float4(input.position, 1.0);
 | |
|     return output;
 | |
| }
 | |
| 
 | |
| #else
 | |
| 
 | |
| fragment float4 fs_main(VSOutput input [[stage_in]])
 | |
| {
 | |
|     return input.color;
 | |
| }
 | |
| 
 | |
| #endif | 
