Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2021-04-14 14:51:55 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2021-04-19 13:10:49 +0300
commit58262986979ba11fa6a49d8e98e9dc0fc55c158a (patch)
tree15ad3c03ff60b43cdd179d0753ceb14d21b3d87f /reference/opt/shaders-msl
parent23da445bd44afe588d6ccf61dc871b6ddac21867 (diff)
MSL: Handle CullDistance better.
Diffstat (limited to 'reference/opt/shaders-msl')
-rw-r--r--reference/opt/shaders-msl/frag/cull-distance-varying.frag26
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;
+}
+