12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #version 110
- int f(int a, int b, int c)
- {
- int a = b; // ERROR, redefinition
- {
- float a = float(a) + 1.0; // okay
- }
- return a;
- }
- int f(int a, int b, int c); // okay to redeclare
- bool b;
- float b(int a); // okay, b and b() are different
- float c(int a);
- bool c; // okay, and c() are different
- float f; // okay f and f() are different
- float tan; // okay, hides built-in function
- float sin(float x); // okay, can redefine built-in functions
- float cos(float x) // okay, can redefine built-in functions
- {
- return 1.0;
- }
- bool radians(bool x) // okay, can overload built-in functions
- {
- return true;
- }
- int gi = f(1,2,3); // ERROR, can't call user-defined function from global scope
- void main()
- {
- int g(); // okay
- g();
- float sin; // okay
- sin;
- sin(0.7); // okay
- f(1,2,3);
- float f;
- f = 3.0;
- gl_Position = vec4(f);
- for (int f = 0; f < 10; ++f)
- ++f;
- int x = 1;
- {
- float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2
- int z = z; // ERROR: z not previously defined.
- }
- {
- int x = x; // x is initialized to '1'
- }
- struct S
- {
- int x;
- };
- {
- S S = S(0); // 'S' is only visible as a struct and constructor
- S.x; // 'S' is now visible as a variable
- }
- int degrees;
- degrees(3.2);
- {
- S s;
- s.x = 3;
- struct S { // okay, hides S
- bool b;
- };
- S t;
- t.b = true;
- struct S { // ERROR, redefinition of struct S
- float f;
- };
- }
- }
|