
// Vk3DVision (http://3dsurroundgaming.com/) - Original Shader
#version 450


// Vk3DVision (http://3dsurroundgaming.com/) - Stereo Injection
layout(set = 0, binding = 99, std140) uniform Vk3DParams
{
    vec4 stereo;
    vec4 custom_params;
}
 vk3d_params;

layout(set = 0, binding = 0, std140) uniform VConstants
{
    vec4 vfuniforms[144];
} _23;

layout(location = 0) in vec4 pos;
layout(location = 2) in vec4 afactor;
layout(location = 0) out vec4 color;
layout(location = 1) in vec4 acolor;
layout(location = 2) out vec4 fucxadd;
layout(location = 3) out vec4 fucxmul;
layout(location = 1) out vec4 factor;

void main()
{
    gl_Position.x = dot(pos, _23.vfuniforms[int(((((afactor.z * 255.0099945068359375) * 6.0) + 2.0) + 0.100000001490116119384765625) + 0.0)]);

// Vk3DVision (http://3dsurroundgaming.com/) - Stereo Injection
    gl_Position.y = -dot(pos, _23.vfuniforms[int(((((afactor.z * 255.0099945068359375) * 6.0) + 2.0) + 0.100000001490116119384765625) + 1.0)]);
    gl_Position.z = dot(pos, _23.vfuniforms[int(((((afactor.z * 255.0099945068359375) * 6.0) + 2.0) + 0.100000001490116119384765625) + 2.0)]);
    gl_Position.w = dot(pos, _23.vfuniforms[int(((((afactor.z * 255.0099945068359375) * 6.0) + 2.0) + 0.100000001490116119384765625) + 3.0)]);
//    gl_Position.x += vk3d_params.stereo.x * (gl_Position.w - vk3d_params.stereo.y) *0.05;
    color = acolor;
    fucxadd = _23.vfuniforms[int((((afactor.z * 255.0099945068359375) * 6.0) + 0.0) + 0.100000001490116119384765625)];
    fucxmul = _23.vfuniforms[int((((afactor.z * 255.0099945068359375) * 6.0) + 1.0) + 0.100000001490116119384765625)];
    factor = afactor;
}




