SPIRV-Cross/reference/opt/shaders-msl/frag/in_block.frag
Hans-Kristian Arntzen d310060f92 MSL: Support global I/O block and struct Input/Output usage.
Implement this by flattening outputs and unflattening inputs explicitly.
This allows us to pass down a single struct instead of dealing with the
insanity that would be passing down each flattened member separately.

Remove stage_uniforms_var_id.
Seems to be dead code. Naked uniforms do not exist in SPIR-V for Vulkan,
which this seems to have been intended for. It was also unused elsewhere.
2018-09-13 16:04:24 +02:00

33 lines
554 B
GLSL

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct VertexOut
{
float4 color;
float4 color2;
};
struct main0_out
{
float4 FragColor [[color(0)]];
};
struct main0_in
{
float4 VertexOut_color [[user(locn2)]];
float4 VertexOut_color2 [[user(locn3)]];
};
fragment main0_out main0(main0_in in [[stage_in]])
{
main0_out out = {};
VertexOut inputs = {};
inputs.color = in.VertexOut_color;
inputs.color2 = in.VertexOut_color2;
out.FragColor = inputs.color + inputs.color2;
return out;
}