75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #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);
 | |
| }
 | 
