1#pragma clang diagnostic ignored "-Wmissing-prototypes" 2 3#include <metal_stdlib> 4#include <simd/simd.h> 5 6using namespace metal; 7 8struct V2F 9{ 10 float4 Position; 11 float4 Color; 12}; 13 14struct InstanceData 15{ 16 float4x4 MATRIX_MVP; 17 float4 Color; 18}; 19 20struct InstanceData_1 21{ 22 float4x4 MATRIX_MVP; 23 float4 Color; 24}; 25 26struct gInstanceData 27{ 28 InstanceData_1 _data[1]; 29}; 30 31struct main0_out 32{ 33 float4 _entryPointOutput_Color [[user(locn0)]]; 34 float4 gl_Position [[position]]; 35}; 36 37struct main0_in 38{ 39 float3 PosL [[attribute(0)]]; 40}; 41 42static inline __attribute__((always_inline)) 43V2F _VS(thread const float3& PosL, thread const uint& instanceID, const device gInstanceData& gInstanceData_1) 44{ 45 InstanceData instData; 46 instData.MATRIX_MVP = transpose(gInstanceData_1._data[instanceID].MATRIX_MVP); 47 instData.Color = gInstanceData_1._data[instanceID].Color; 48 V2F v2f; 49 v2f.Position = instData.MATRIX_MVP * float4(PosL, 1.0); 50 v2f.Color = instData.Color; 51 return v2f; 52} 53 54vertex main0_out main0(main0_in in [[stage_in]], const device gInstanceData& gInstanceData_1 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]]) 55{ 56 main0_out out = {}; 57 float3 PosL = in.PosL; 58 uint instanceID = gl_InstanceIndex; 59 float3 param = PosL; 60 uint param_1 = instanceID; 61 V2F flattenTemp = _VS(param, param_1, gInstanceData_1); 62 out.gl_Position = flattenTemp.Position; 63 out._entryPointOutput_Color = flattenTemp.Color; 64 return out; 65} 66 67