#include using namespace metal; struct PointLight { /* 0x0000 */ float4 position; }; struct PointLights { /* 0x0000 */ PointLight values[1]; }; struct Uniforms { /* 0x0000 */ float4x4 worldView; /* 0x0040 */ float4x4 proj; /* 0x0080 */ uint numPointLights; /* 0x0084 */ uint color_source; /* 0x0088 */ int8_t tint_pad[8]; /* 0x0090 */ float4 color; }; struct FragmentInput { float4 position; float4 view_position; float4 normal; float2 uv; float4 color; }; struct FragmentOutput { float4 color; }; struct tint_symbol_3 { float4 view_position [[user(locn0)]]; float4 normal [[user(locn1)]]; float2 uv [[user(locn2)]]; float4 color [[user(locn3)]]; }; struct tint_symbol_4 { float4 color [[color(0)]]; }; float4 getColor(constant Uniforms& uniforms, FragmentInput tint_symbol, texture2d tint_symbol_6, sampler tint_symbol_7) { float4 color = 0.0f; if ((uniforms.color_source == 0u)) { color = tint_symbol.color; } else { if ((uniforms.color_source == 1u)) { color = tint_symbol.normal; color[3] = 1.0f; } else { if ((uniforms.color_source == 2u)) { color = uniforms.color; } else { if ((uniforms.color_source == 3u)) { color = tint_symbol_6.sample(tint_symbol_7, tint_symbol.uv); } } } } return color; } FragmentOutput tint_symbol_1_inner(FragmentInput tint_symbol, sampler tint_symbol_8, texture2d tint_symbol_9) { FragmentOutput output = {}; output.color = float4(1.0f, 0.0f, 0.0f, 1.0f); return output; } fragment tint_symbol_4 tint_symbol_1(sampler tint_symbol_10 [[sampler(0)]], texture2d tint_symbol_11 [[texture(0)]], float4 position [[position]], tint_symbol_3 tint_symbol_2 [[stage_in]]) { FragmentInput const tint_symbol_5 = {.position=position, .view_position=tint_symbol_2.view_position, .normal=tint_symbol_2.normal, .uv=tint_symbol_2.uv, .color=tint_symbol_2.color}; FragmentOutput const inner_result = tint_symbol_1_inner(tint_symbol_5, tint_symbol_10, tint_symbol_11); tint_symbol_4 wrapper_result = {}; wrapper_result.color = inner_result.color; return wrapper_result; }