#include <metal_stdlib>

using namespace metal;
struct tint_symbol_1 {
  float4 value [[position]];
};

float4 tint_symbol_inner(uint VertexIndex) {
  return float4(0.0f, 0.0f, 0.0f, 1.0f);
}

vertex tint_symbol_1 tint_symbol(uint VertexIndex [[vertex_id]]) {
  float4 const inner_result = tint_symbol_inner(VertexIndex);
  tint_symbol_1 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

