SPIRV-Cross/shaders/vert/read-from-row-major-array.vert

21 lines
764 B
GLSL
Raw Normal View History

#version 310 es
layout(location = 0) in highp vec4 a_position;
layout(location = 0) out mediump float v_vtxResult;
layout(set = 0, binding = 0, std140, row_major) uniform Block
{
highp mat2x3 var[3][4];
};
mediump float compare_float (highp float a, highp float b) { return abs(a - b) < 0.05 ? 1.0 : 0.0; }
mediump float compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)*compare_float(a.y, b.y)*compare_float(a.z, b.z); }
mediump float compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])*compare_vec3(a[1], b[1]); }
void main (void)
{
gl_Position = a_position;
mediump float result = 1.0;
result *= compare_mat2x3(var[0][0], mat2x3(2.0, 6.0, -6.0, 0.0, 5.0, 5.0));
v_vtxResult = result;
}