• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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