| #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; |
| } |