Home | History | Annotate | Download | only in shaders
      1 case float_input
      2 	values
      3 	{
      4 		input float in0		= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
      5 		output float out0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
      6 	}
      7 
      8 	both ""
      9 		precision highp float;
     10 		${DECLARATIONS}
     11 		void main()
     12 		{
     13 			out0 = in0;
     14 			${OUTPUT}
     15 		}
     16 	""
     17 end
     18 
     19 case float_uniform
     20 	values
     21 	{
     22 		uniform float uni0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
     23 		output float out0	= [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
     24 	}
     25 
     26 	both ""
     27 		precision highp float;
     28 		${DECLARATIONS}
     29 		uniform float uni0;
     30 		void main()
     31 		{
     32 			out0 = uni0;
     33 			${OUTPUT}
     34 		}
     35 	""
     36 end
     37 
     38 case float_0
     39 	values { output float out0 = 1.123; }
     40 	both ""
     41 		precision highp float;
     42 		${DECLARATIONS}
     43 		void main()
     44 		{
     45 			out0 = +1.123;
     46 			${OUTPUT}
     47 		}
     48 	""
     49 end
     50 
     51 case float_1
     52 	values { output float out0 = -1.123; }
     53 	both ""
     54 		precision highp float;
     55 		${DECLARATIONS}
     56 		void main()
     57 		{
     58 			out0 = -1.123;
     59 			${OUTPUT}
     60 		}
     61 	""
     62 end
     63 
     64 case float_2
     65 	values { output float out0 = 123.0; }
     66 	both ""
     67 		precision highp float;
     68 		${DECLARATIONS}
     69 		void main()
     70 		{
     71 			out0 = 123.;
     72 			${OUTPUT}
     73 		}
     74 	""
     75 end
     76 
     77 case float_3
     78 	values { output float out0 = 0.123; }
     79 	both ""
     80 		precision highp float;
     81 		${DECLARATIONS}
     82 		void main()
     83 		{
     84 			out0 = .123;
     85 			${OUTPUT}
     86 		}
     87 	""
     88 end
     89 
     90 case float_4
     91 	values { output float out0 = 123.0; }
     92 	both ""
     93 		precision highp float;
     94 		${DECLARATIONS}
     95 		void main()
     96 		{
     97 			out0 = 1.23e+2;
     98 			${OUTPUT}
     99 		}
    100 	""
    101 end
    102 
    103 case float_5
    104 	values { output float out0 = -123.0; }
    105 	both ""
    106 		precision highp float;
    107 		${DECLARATIONS}
    108 		void main()
    109 		{
    110 			out0 = -1.23E+2;
    111 			${OUTPUT}
    112 		}
    113 	""
    114 end
    115 
    116 case float_6
    117 	values { output float out0 = -123.0; }
    118 	both ""
    119 		precision highp float;
    120 		${DECLARATIONS}
    121 		void main()
    122 		{
    123 			out0 = -1.23e2;
    124 			${OUTPUT}
    125 		}
    126 	""
    127 end
    128 
    129 case float_7
    130 	values { output float out0 = 0.123; }
    131 	both ""
    132 		precision highp float;
    133 		${DECLARATIONS}
    134 		void main()
    135 		{
    136 			out0 = 1.23e-1;
    137 			${OUTPUT}
    138 		}
    139 	""
    140 end
    141 
    142 case float_8
    143 	values { output float out0 = 1000.0; }
    144 	both ""
    145 		precision highp float;
    146 		${DECLARATIONS}
    147 		void main()
    148 		{
    149 			out0 = 1e3;
    150 			${OUTPUT}
    151 		}
    152 	""
    153 end
    154 
    155 case int_0
    156 	values { output int out0 = 123; }
    157 	both ""
    158 		precision highp float;
    159 		${DECLARATIONS}
    160 		void main()
    161 		{
    162 			out0 = 123;
    163 			${OUTPUT}
    164 		}
    165 	""
    166 end
    167 
    168 case int_1
    169 	values { output int out0 = -321; }
    170 	both ""
    171 		precision highp float;
    172 		${DECLARATIONS}
    173 		void main()
    174 		{
    175 			out0 = -321;
    176 			${OUTPUT}
    177 		}
    178 	""
    179 end
    180 
    181 case int_2
    182 	values { output int out0 = 123; }
    183 	both ""
    184 		precision highp float;
    185 		${DECLARATIONS}
    186 		void main()
    187 		{
    188 			out0 = 0x7B;
    189 			${OUTPUT}
    190 		}
    191 	""
    192 end
    193 
    194 case int_3
    195 	values { output int out0 = 123; }
    196 	both ""
    197 		precision highp float;
    198 		${DECLARATIONS}
    199 		void main()
    200 		{
    201 			out0 = 0X7b;
    202 			${OUTPUT}
    203 		}
    204 	""
    205 end
    206 
    207 case int_4
    208 	values { output int out0 = 123; }
    209 	both ""
    210 		precision highp float;
    211 		${DECLARATIONS}
    212 		void main()
    213 		{
    214 			out0 = 0173;
    215 			${OUTPUT}
    216 		}
    217 	""
    218 end
    219 
    220 case bool_0
    221 	values { output bool out0 = true; }
    222 	both ""
    223 		precision highp float;
    224 		${DECLARATIONS}
    225 		void main()
    226 		{
    227 			out0 = true;
    228 			${OUTPUT}
    229 		}
    230 	""
    231 end
    232 
    233 case bool_1
    234 	values { output bool out0 = false; }
    235 	both ""
    236 		precision highp float;
    237 		${DECLARATIONS}
    238 		void main()
    239 		{
    240 			out0 = false;
    241 			${OUTPUT}
    242 		}
    243 	""
    244 end
    245 
    246 case const_float_global
    247 	 values { output float out0 = 1000.0; }
    248 
    249 	 both ""
    250 		  precision mediump float;
    251 		  ${DECLARATIONS}
    252 		  const float theConstant = 1000.0;
    253 		  void main()
    254 		  {
    255 				out0 = theConstant;
    256 				${OUTPUT}
    257 		  }
    258 	 ""
    259 end
    260 
    261 case const_float_main
    262 	 values { output float out0 = -1000.0; }
    263 
    264 	 both ""
    265 		  precision mediump float;
    266 		  ${DECLARATIONS}
    267 		  void main()
    268 		  {
    269 			    const float theConstant = -1000.0;
    270 				out0 = theConstant;
    271 				${OUTPUT}
    272 		  }
    273 	 ""
    274 end
    275 
    276 case const_float_function
    277 	 values { output float out0 = -0.012; }
    278 
    279 	 both ""
    280 		  precision mediump float;
    281 		  ${DECLARATIONS}
    282 		  float func()
    283 		  {
    284 			    const float theConstant = -0.012;
    285 				return theConstant;
    286 		  }
    287 		  void main()
    288 		  {
    289 				out0 = func();
    290 				${OUTPUT}
    291 		  }
    292 	 ""
    293 end
    294 
    295 case const_float_scope
    296 	 values { output float out0 = 1.0; }
    297 
    298 	 both ""
    299 		  precision mediump float;
    300 		  ${DECLARATIONS}
    301 		  void main()
    302 		  {
    303 				{
    304 					 const float theConstant = 1.0;
    305 					 out0 = theConstant;
    306 			    }
    307 				${OUTPUT}
    308 		  }
    309 	 ""
    310 end
    311 
    312 case const_float_scope_shawdowing_1
    313 	 values { output float out0 = 1.0; }
    314 
    315 	 both ""
    316 		  precision mediump float;
    317 		  ${DECLARATIONS}
    318 		  void main()
    319 		  {
    320 			    const float theConstant = 100.0;
    321 				{
    322 					 const float theConstant = 1.0;
    323 					 out0 = theConstant;
    324 			    }
    325 				${OUTPUT}
    326 		  }
    327 	 ""
    328 end
    329 
    330 case const_float_scope_shawdowing_2
    331 	 values { output float out0 = 1.0; }
    332 
    333 	 both ""
    334 		  precision mediump float;
    335 	      ${DECLARATIONS}
    336 		  const float theConstant = 100.0;
    337 		  void main()
    338 		  {
    339 				{
    340 					 const float theConstant = 1.0;
    341 					 out0 = theConstant;
    342 			    }
    343 				${OUTPUT}
    344 		  }
    345 	 ""
    346 end
    347 
    348 case const_float_scope_shawdowing_3
    349 	 values { output float out0 = 1.0; }
    350 
    351 	 both ""
    352 		  precision mediump float;
    353 	      ${DECLARATIONS}
    354 		  const float theConstant = 100.0;
    355 		  void main()
    356 		  {
    357 			    const float theConstant = -100.0;
    358 				{
    359 					 const float theConstant = 1.0;
    360 					 out0 = theConstant;
    361 			    }
    362 				${OUTPUT}
    363 		  }
    364 	 ""
    365 end
    366 
    367 case const_float_scope_shawdowing_4
    368 	 values { output float out0 = 2.0; }
    369 
    370 	 both ""
    371 		  precision mediump float;
    372 	      ${DECLARATIONS}
    373 		  const float theConstant = 100.0;
    374 		  float func()
    375 		  {
    376 				const float theConstant = 2.0;
    377 				return theConstant;
    378 		  }
    379 		  void main()
    380 		  {
    381 			    const float theConstant = -100.0;
    382 				{
    383 					 const float theConstant = 1.0;
    384 					 out0 = func();
    385 			    }
    386 				${OUTPUT}
    387 		  }
    388 	 ""
    389 end
    390 
    391 case const_float_operations_with_const
    392 	 values { output float out0 = 21.0; }
    393 
    394 	 both ""
    395 		  precision mediump float;
    396 	      ${DECLARATIONS}
    397 		  const float theGlobalConstant = 10.0;
    398 		  float func()
    399 		  {
    400 				const float theConstant = 2.0;
    401 				return theConstant;
    402 		  }
    403 		  void main()
    404 		  {
    405 			    const float theConstant = -100.0;
    406 				{
    407 					 const float theConstant = 1.0;
    408 					 out0 = func() * theGlobalConstant + theConstant;
    409 			    }
    410 				${OUTPUT}
    411 		  }
    412 	 ""
    413 end
    414 
    415 case const_float_assignment_1
    416 	 values { output float out0 = 10.0; }
    417 
    418 	 both ""
    419 		  precision mediump float;
    420 	      ${DECLARATIONS}
    421 		  void main()
    422 		  {
    423 			    const float theConstant1 = 10.0;
    424 				const float theConstant2 = theConstant1;
    425 				out0 = theConstant2;
    426 				${OUTPUT}
    427 		  }
    428 	 ""
    429 end
    430 
    431 case const_float_assignment_2
    432 	 values { output float out0 = 10.0; }
    433 
    434 	 both ""
    435 		  precision mediump float;
    436 	      ${DECLARATIONS}
    437 		  void main()
    438 		  {
    439 			    const float theConstant1 = 10.0;
    440 				{
    441 					const float theConstant2 = theConstant1;
    442 					out0 = theConstant2;
    443 				}
    444 				${OUTPUT}
    445 		  }
    446 	 ""
    447 end
    448 
    449 case const_float_assignment_3
    450 	 values { output float out0 = 10.0; }
    451 
    452 	 both ""
    453 		  precision mediump float;
    454 	      ${DECLARATIONS}
    455 	      const float theConstant1 = 10.0;
    456 		  void main()
    457 		  {
    458 				const float theConstant2 = theConstant1;
    459 				out0 = theConstant2;
    460 				${OUTPUT}
    461 		  }
    462 	 ""
    463 end
    464 
    465 case const_float_assignment_4
    466 	 values { output float out0 = 10.0; }
    467 
    468 	 both ""
    469 		  precision mediump float;
    470 	      ${DECLARATIONS}
    471 	      const float theConstant1 = 10.0;
    472 		  float func()
    473 		  {
    474 				const float theConstant2 = theConstant1;
    475 				return theConstant2;
    476 		  }
    477 		  void main()
    478 		  {
    479 				out0 = func();
    480 				${OUTPUT}
    481 		  }
    482 	 ""
    483 end
    484 
    485 case const_float_assign_uniform
    486 	 expect compile_fail
    487 	 values { output float out0 = 10.0; }
    488 	 both ""
    489 		  precision mediump float;
    490 	      ${DECLARATIONS}
    491 		  uniform float theUniform;
    492 		  void main()
    493 		  {
    494 				const float theConstant = theUniform;
    495 				out0 = theConstant;
    496 				${OUTPUT}
    497 		  }
    498 	 ""
    499 end
    500 
    501 case const_float_assign_varying
    502 	 expect compile_fail
    503 	 values { output float out0 = 10.0; }
    504 	 vertex ""
    505 	      ${VERTEX_DECLARATIONS}
    506 		  varying float theVarying;
    507 		  void main()
    508 		  {
    509 				theVarying = 1.0;
    510 				gl_Position = vec(1.0);
    511 		  }
    512 	 ""
    513 	 fragment ""
    514 		  precision mediump float;
    515 	      ${FRAGMENT_DECLARATIONS}
    516 		  varying float theVarying;
    517 		  void main()
    518 		  {
    519 				const float theConstant = theVarying;
    520 				out0 = theConstant;
    521 				${FRAGMENT_OUTPUT}
    522 		  }
    523 	 ""
    524 end
    525 
    526 case const_float_function_gotcha
    527 	 desc "Function constant parameters are not really constants, so using them as constant expressions should fail."
    528 	 expect compile_fail
    529 	 values { output float out0 = 20.0; }
    530 	 both ""
    531 		  precision mediump float;
    532 	      ${DECLARATIONS}
    533 		  float func(const float gotcha)
    534 		  {
    535 				const float theConstant2 = gotcha;
    536 				return theConstant2*2.0;
    537 		  }
    538 		  void main()
    539 		  {
    540 			    const float theConstant = 10.0;
    541 				out0 = func(theConstant);
    542 				${OUTPUT}
    543 		  }
    544 	 ""
    545 end
    546 
    547 case const_float_from_int
    548 	 values { output float out0 = 10.0; }
    549 
    550 	 both ""
    551 		  precision mediump float;
    552 	      ${DECLARATIONS}
    553 	      const float theConstant = float(10);
    554 		  void main()
    555 		  {
    556 				out0 = theConstant;
    557 				${OUTPUT}
    558 		  }
    559 	 ""
    560 end
    561 
    562 case const_float_from_vec2
    563 	 values { output float out0 = 10.0; }
    564 
    565 	 both ""
    566 		  precision mediump float;
    567 	      ${DECLARATIONS}
    568 	      const float theConstant = vec2(1.0, 10.0).y;
    569 		  void main()
    570 		  {
    571 				out0 = theConstant;
    572 				${OUTPUT}
    573 		  }
    574 	 ""
    575 end
    576 
    577 case const_float_from_vec3
    578 	 values { output float out0 = 10.0; }
    579 
    580 	 both ""
    581 		  precision mediump float;
    582 	      ${DECLARATIONS}
    583 	      const float theConstant = vec3(1.0, 10.0, 20.0).y;
    584 		  void main()
    585 		  {
    586 				out0 = theConstant;
    587 				${OUTPUT}
    588 		  }
    589 	 ""
    590 end
    591 
    592 case const_float_from_vec4
    593 	 values { output float out0 = 10.0; }
    594 
    595 	 both ""
    596 		  precision mediump float;
    597 	      ${DECLARATIONS}
    598 	      const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y;
    599 		  void main()
    600 		  {
    601 				out0 = theConstant;
    602 				${OUTPUT}
    603 		  }
    604 	 ""
    605 end
    606 
    607 case const_float_assign_variable_1
    608 	 expect compile_fail
    609 	 values { output float out0 = 20.0; }
    610 	 both ""
    611 		  precision mediump float;
    612 	      ${DECLARATIONS}
    613 		  void main()
    614 		  {
    615 				float theVariable = 20.0;
    616 				const float theConstant = theVariable;
    617 				out0 = theConstant;
    618 				${OUTPUT}
    619 		  }
    620 	 ""
    621 end
    622 
    623 case const_float_assign_variable_2
    624 	 expect compile_fail
    625 	 values { output float out0 = 50.0; }
    626 	 both ""
    627 		  precision mediump float;
    628 	      ${DECLARATIONS}
    629 		  void main()
    630 		  {
    631 				float theVariable = 20.0;
    632 				theVariable += 30.0;
    633 				const float theConstant = theVariable;
    634 				out0 = theConstant;
    635 				${OUTPUT}
    636 		  }
    637 	 ""
    638 end
    639 
    640 case const_float_assign_user_func
    641 	 expect compile_fail
    642 	 values { output float out0 = 50.0; }
    643 	 both ""
    644 		  precision mediump float;
    645 	      ${DECLARATIONS}
    646 		  float func()
    647 		  {
    648 				return 50.0;
    649 		  }
    650 		  void main()
    651 		  {
    652 				const float theConstant = func();
    653 				out0 = theConstant;
    654 				${OUTPUT}
    655 		  }
    656 	 ""
    657 end
    658