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 42V2F _VS(thread const float3& PosL, thread const uint& instanceID, const device gInstanceData& gInstanceData_1) 43{ 44 InstanceData instData; 45 instData.MATRIX_MVP = transpose(gInstanceData_1._data[instanceID].MATRIX_MVP); 46 instData.Color = gInstanceData_1._data[instanceID].Color; 47 V2F v2f; 48 v2f.Position = instData.MATRIX_MVP * float4(PosL, 1.0); 49 v2f.Color = instData.Color; 50 return v2f; 51} 52 53vertex main0_out main0(main0_in in [[stage_in]], const device gInstanceData& gInstanceData_1 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]]) 54{ 55 main0_out out = {}; 56 float3 PosL = in.PosL; 57 uint instanceID = gl_InstanceIndex; 58 float3 param = PosL; 59 uint param_1 = instanceID; 60 V2F flattenTemp = _VS(param, param_1, gInstanceData_1); 61 out.gl_Position = flattenTemp.Position; 62 out._entryPointOutput_Color = flattenTemp.Color; 63 return out; 64} 65 66