1#include <metal_stdlib> 2#include <simd/simd.h> 3using namespace metal; 4struct Uniforms { 5 float2 h2; 6 float3 h3; 7 float4 h4; 8 float2 f2; 9 float3 f3; 10 float4 f4; 11}; 12struct Inputs { 13}; 14struct Outputs { 15 float4 sk_FragColor [[color(0)]]; 16}; 17 18fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { 19 Outputs _out; 20 (void)_out; 21 _out.sk_FragColor = outerProduct(_uniforms.f2, _uniforms.f2)[1].xyyy; 22 _out.sk_FragColor = outerProduct(_uniforms.f3, _uniforms.f3)[2].xyzz; 23 _out.sk_FragColor = outerProduct(_uniforms.f4, _uniforms.f4)[3]; 24 _out.sk_FragColor = outerProduct(_uniforms.f3, _uniforms.f2)[1].xyzz; 25 _out.sk_FragColor = outerProduct(_uniforms.f2, _uniforms.f3)[2].xyyy; 26 _out.sk_FragColor = outerProduct(_uniforms.f4, _uniforms.f2)[1]; 27 _out.sk_FragColor = outerProduct(_uniforms.f2, _uniforms.f4)[3].xyyy; 28 _out.sk_FragColor = outerProduct(_uniforms.f4, _uniforms.f3)[2]; 29 _out.sk_FragColor = outerProduct(_uniforms.f3, _uniforms.f4)[3].xyzz; 30 _out.sk_FragColor = outerProduct(_uniforms.h2, _uniforms.h2)[1].xyyy; 31 _out.sk_FragColor = outerProduct(_uniforms.h3, _uniforms.h3)[2].xyzz; 32 _out.sk_FragColor = outerProduct(_uniforms.h4, _uniforms.h4)[3]; 33 _out.sk_FragColor = outerProduct(_uniforms.h3, _uniforms.h2)[1].xyzz; 34 _out.sk_FragColor = outerProduct(_uniforms.h2, _uniforms.h3)[2].xyyy; 35 _out.sk_FragColor = outerProduct(_uniforms.h4, _uniforms.h2)[1]; 36 _out.sk_FragColor = outerProduct(_uniforms.h2, _uniforms.h4)[3].xyyy; 37 _out.sk_FragColor = outerProduct(_uniforms.h4, _uniforms.h3)[2]; 38 _out.sk_FragColor = outerProduct(_uniforms.h3, _uniforms.h4)[3].xyzz; 39 return _out; 40} 41