diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-04-14 14:51:55 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-04-19 13:10:49 +0300 |
commit | 58262986979ba11fa6a49d8e98e9dc0fc55c158a (patch) | |
tree | 15ad3c03ff60b43cdd179d0753ceb14d21b3d87f /reference/opt/shaders-msl | |
parent | 23da445bd44afe588d6ccf61dc871b6ddac21867 (diff) |
MSL: Handle CullDistance better.
Diffstat (limited to 'reference/opt/shaders-msl')
-rw-r--r-- | reference/opt/shaders-msl/frag/cull-distance-varying.frag | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/reference/opt/shaders-msl/frag/cull-distance-varying.frag b/reference/opt/shaders-msl/frag/cull-distance-varying.frag new file mode 100644 index 00000000..ddde8e1d --- /dev/null +++ b/reference/opt/shaders-msl/frag/cull-distance-varying.frag @@ -0,0 +1,26 @@ +#include <metal_stdlib> +#include <simd/simd.h> + +using namespace metal; + +struct main0_out +{ + float4 FragColor [[color(0)]]; +}; + +struct main0_in +{ + float gl_CullDistance_0 [[user(cull0)]]; + float gl_CullDistance_1 [[user(cull1)]]; +}; + +fragment main0_out main0(main0_in in [[stage_in]]) +{ + main0_out out = {}; + float gl_CullDistance[2] = {}; + gl_CullDistance[0] = in.gl_CullDistance_0; + gl_CullDistance[1] = in.gl_CullDistance_1; + out.FragColor = float4((1.0 - gl_CullDistance[0]) - gl_CullDistance[1]); + return out; +} + |