| case float_input |
| values |
| { |
| input float in0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ]; |
| output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ]; |
| } |
| |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = in0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_uniform |
| values |
| { |
| uniform float uni0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ]; |
| output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ]; |
| } |
| |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| uniform float uni0; |
| void main() |
| { |
| out0 = uni0; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_0 |
| values { output float out0 = 1.123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = +1.123; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_1 |
| values { output float out0 = -1.123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = -1.123; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_2 |
| values { output float out0 = 123.0; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 123.; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_3 |
| values { output float out0 = 0.123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = .123; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_4 |
| values { output float out0 = 123.0; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 1.23e+2; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_5 |
| values { output float out0 = -123.0; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = -1.23E+2; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_6 |
| values { output float out0 = -123.0; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = -1.23e2; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_7 |
| values { output float out0 = 0.123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 1.23e-1; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case float_8 |
| values { output float out0 = 1000.0; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 1e3; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case int_0 |
| values { output int out0 = 123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 123; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case int_1 |
| values { output int out0 = -321; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = -321; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case int_2 |
| values { output int out0 = 123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0x7B; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case int_3 |
| values { output int out0 = 123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0X7b; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case int_4 |
| values { output int out0 = 123; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = 0173; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case bool_0 |
| values { output bool out0 = true; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = true; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case bool_1 |
| values { output bool out0 = false; } |
| both "" |
| precision highp float; |
| ${DECLARATIONS} |
| void main() |
| { |
| out0 = false; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_global |
| values { output float out0 = 1000.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = 1000.0; |
| void main() |
| { |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_main |
| values { output float out0 = -1000.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| const float theConstant = -1000.0; |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_function |
| values { output float out0 = -0.012; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| float func() |
| { |
| const float theConstant = -0.012; |
| return theConstant; |
| } |
| void main() |
| { |
| out0 = func(); |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_scope |
| values { output float out0 = 1.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| { |
| const float theConstant = 1.0; |
| out0 = theConstant; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_scope_shawdowing_1 |
| values { output float out0 = 1.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| const float theConstant = 100.0; |
| { |
| const float theConstant = 1.0; |
| out0 = theConstant; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_scope_shawdowing_2 |
| values { output float out0 = 1.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = 100.0; |
| void main() |
| { |
| { |
| const float theConstant = 1.0; |
| out0 = theConstant; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_scope_shawdowing_3 |
| values { output float out0 = 1.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = 100.0; |
| void main() |
| { |
| const float theConstant = -100.0; |
| { |
| const float theConstant = 1.0; |
| out0 = theConstant; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_scope_shawdowing_4 |
| values { output float out0 = 2.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = 100.0; |
| float func() |
| { |
| const float theConstant = 2.0; |
| return theConstant; |
| } |
| void main() |
| { |
| const float theConstant = -100.0; |
| { |
| const float theConstant = 1.0; |
| out0 = func(); |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_operations_with_const |
| values { output float out0 = 21.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theGlobalConstant = 10.0; |
| float func() |
| { |
| const float theConstant = 2.0; |
| return theConstant; |
| } |
| void main() |
| { |
| const float theConstant = -100.0; |
| { |
| const float theConstant = 1.0; |
| out0 = func() * theGlobalConstant + theConstant; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assignment_1 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| const float theConstant1 = 10.0; |
| const float theConstant2 = theConstant1; |
| out0 = theConstant2; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assignment_2 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| const float theConstant1 = 10.0; |
| { |
| const float theConstant2 = theConstant1; |
| out0 = theConstant2; |
| } |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assignment_3 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant1 = 10.0; |
| void main() |
| { |
| const float theConstant2 = theConstant1; |
| out0 = theConstant2; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assignment_4 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant1 = 10.0; |
| float func() |
| { |
| const float theConstant2 = theConstant1; |
| return theConstant2; |
| } |
| void main() |
| { |
| out0 = func(); |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assign_uniform |
| expect compile_fail |
| values { output float out0 = 10.0; } |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| uniform float theUniform; |
| void main() |
| { |
| const float theConstant = theUniform; |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assign_varying |
| expect compile_fail |
| values { output float out0 = 10.0; } |
| vertex "" |
| ${VERTEX_DECLARATIONS} |
| varying float theVarying; |
| void main() |
| { |
| theVarying = 1.0; |
| gl_Position = vec(1.0); |
| } |
| "" |
| fragment "" |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| varying float theVarying; |
| void main() |
| { |
| const float theConstant = theVarying; |
| out0 = theConstant; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_function_gotcha |
| desc "Function constant parameters are not really constants, so using them as constant expressions should fail." |
| expect compile_fail |
| values { output float out0 = 20.0; } |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| float func(const float gotcha) |
| { |
| const float theConstant2 = gotcha; |
| return theConstant2*2.0; |
| } |
| void main() |
| { |
| const float theConstant = 10.0; |
| out0 = func(theConstant); |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_from_int |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = float(10); |
| void main() |
| { |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_from_vec2 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = vec2(1.0, 10.0).y; |
| void main() |
| { |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_from_vec3 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = vec3(1.0, 10.0, 20.0).y; |
| void main() |
| { |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_from_vec4 |
| values { output float out0 = 10.0; } |
| |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y; |
| void main() |
| { |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assign_variable_1 |
| expect compile_fail |
| values { output float out0 = 20.0; } |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| float theVariable = 20.0; |
| const float theConstant = theVariable; |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assign_variable_2 |
| expect compile_fail |
| values { output float out0 = 50.0; } |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| void main() |
| { |
| float theVariable = 20.0; |
| theVariable += 30.0; |
| const float theConstant = theVariable; |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case const_float_assign_user_func |
| expect compile_fail |
| values { output float out0 = 50.0; } |
| both "" |
| precision mediump float; |
| ${DECLARATIONS} |
| float func() |
| { |
| return 50.0; |
| } |
| void main() |
| { |
| const float theConstant = func(); |
| out0 = theConstant; |
| ${OUTPUT} |
| } |
| "" |
| end |