| group if "If Statements" |
| |
| case single_statement |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| if (in0 >= 1.0) |
| out0 = 1.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case compound_statement |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| output float out1 = [ 1.0 | 0.0 | 0.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| out1 = 1.0; |
| if (in0 >= 1.0) |
| { |
| out0 = 1.0; |
| out1 = 0.0; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case sequence_statements |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| output float out1 = [ 1.0 | 0.0 | 0.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| out1 = 1.0; |
| if (in0 >= 1.0) |
| out0 = 1.0, out1 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case sequence_condition |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| output float out1 = [ 1.0 | 0.0 | 0.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| out1 = 1.0; |
| if (false, in0 >= 1.0) |
| out0 = 1.0, out1 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case complex_condition |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| output float out1 = [ 1.0 | 0.0 | 0.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| out1 = 1.0; |
| if (false || (in0 >= 1.0) && (in0 - 2.0*in0 < 0.0)) |
| out0 = 1.0, out1 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case if_else |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 1.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| if (in0 >= 1.0) |
| out0 = 1.0; |
| else |
| out0 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case if_elseif |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 2.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0.0; |
| if (in0 >= 2.0) |
| out0 = 2.0; |
| else if (in0 >= 1.0) |
| out0 = 1.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case if_elseif_else |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 2.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| if (in0 >= 2.0) |
| out0 = 2.0; |
| else if (in0 >= 1.0) |
| out0 = 1.0; |
| else |
| out0 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case mixed_if_elseif_else |
| values |
| { |
| input float in0 = [ 0.0 | 1.0 | 2.0 ]; |
| output float out0 = [ 0.0 | 1.0 | 2.0 ]; |
| } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| if (in0 >= 2.0) |
| { |
| out0 = 2.0; |
| } |
| else if (in0 >= 1.0) |
| out0 = 2.0, out0 = 1.0; |
| else |
| out0 = 0.0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| end # if |
| |
| group invalid_if "Invalid If Conditionals" |
| |
| case missing_parenthesis |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if true |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case unclosed_parenthesis |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (true |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case int_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (5) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case int_zero_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case int_one_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (1) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case int_uniform_condition |
| expect compile_fail |
| |
| both "" |
| precision mediump float; |
| precision mediump int; |
| uniform int u0; |
| void main() |
| { |
| if (u0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case float_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (5.0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case float_zero_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (0.0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case float_one_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| void main() |
| { |
| if (1.0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case sampler_condition |
| expect compile_fail |
| both "" |
| precision mediump float; |
| uniform sampler2D s0; |
| void main() |
| { |
| if (s0) |
| ${POSITION_FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| end # invalid_if |