aboutsummaryrefslogtreecommitdiff
path: root/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-int.vert
blob: b1930b281d0db58f0cda1dba9736558bf0aded46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* [config]
 * expect_result: fail
 * glsl_version: 1.20
 * glsles_version: 1.00
 * [end config]
 *
 * From page 20 (page 26 of the PDF) of the GLSL 1.20 spec:
 *
 *     "In some situations, an expression and its type will be implicitly
 *     converted to a different type. The following table shows all allowed
 *     implicit conversions:
 *
 *     Type of expression   Can be implicitly converted to
 *     int                  float
 *     ivec2                vec2
 *     ivec3                vec3
 *     ivec4                vec4
 *
 *     There are no implicit array or structure conversions. For example, an
 *     array of int cannot be implicitly converted to an array of float.  When
 *     an implicit conversion is done, it is not just a re-interpretation of
 *     the expression's value, but a conversion of that value to an equivalent
 *     value in the new type. For example, the integer value 5 will be
 *     converted to the floating-point value 5.0.  The conversions in the
 *     table above are done only as indicated by other sections of this
 *     specification."
 */


uniform float a[2];

void main()
{
  int b[2] = int[](a[0], a[0]);

  gl_Position = vec4(b[0], b[0], b[1], b[1]);
}