�8t$��r: J cbuffer PerFrameUbo : register(b0, space0)
{
row_major float4x4 per_frame_data_view_proj : packoffset(c0);
};
static float4 gl_Position;
static float4 out_color;
static float4 in_color;
static float3 in_pos;
struct SPIRV_Cross_Input
{
float3 in_pos : POSITION;
float4 in_color : COLOR;
};
struct SPIRV_Cross_Output
{
float4 out_color : TEXCOORD0;
float4 gl_Position : SV_Position;
};
void vert_main()
{
out_color = in_color;
gl_Position = mul(float4(in_pos.x, in_pos.y, in_pos.z, 1.0f), per_frame_data_view_proj);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
in_color = stage_input.in_color;
in_pos = stage_input.in_pos;
vert_main();
SPIRV_Cross_Output stage_output;
stage_output.gl_Position = gl_Position;
stage_output.out_color = out_color;
return stage_output;
}
� #include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct PerFrameUbo
{
float4x4 view_proj;
};
struct spvDescriptorSetBuffer0
{
constant PerFrameUbo* per_frame_data [[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.per_frame_data).view_proj * float4(in.in_pos.x, in.in_pos.y, in.in_pos.z, 1.0);
return out;
}
( #
, GLSL.std.450 main G G H H H H G H H # H G G "