#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct Args
{
float4x4 mvp;
};
struct spvDescriptorSetBuffer0
{
constant Args* uniform_buffer [[id(0)]];
};
struct main0_out
{
float4 out_color [[user(locn0)]];
float4 gl_Position [[position]];
};
struct main0_in
{
float3 in_pos [[attribute(0)]];
float4 in_color [[attribute(1)]];
};
vertex main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]])
{
main0_out out = {};
out.out_color = in.in_color;
out.gl_Position = (*spvDescriptorSet0.uniform_buffer).mvp * float4(in.in_pos, 1.0);
return out;
}