- do version checking for the line-continuation character - check for built-in names in #undef - bug fix for #elif after #else - do version checking for use of floating point suffixes (f, LF, etc.) git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24011 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#version 100
 | 
						|
 | 
						|
varying vec3 color;       // ERRROR, there is no default qualifier for float
 | 
						|
 | 
						|
lowp vec2 foo(mediump vec3 mv3)
 | 
						|
{
 | 
						|
    highp vec4 hv4;
 | 
						|
    return hv4.xy;
 | 
						|
}
 | 
						|
 | 
						|
int global_medium;
 | 
						|
 | 
						|
uniform lowp sampler2D samplerLow;
 | 
						|
uniform mediump sampler2D samplerMed;
 | 
						|
uniform highp sampler2D samplerHigh;
 | 
						|
 | 
						|
precision highp int; 
 | 
						|
precision highp ivec2;     // ERROR
 | 
						|
precision mediump int[2];  // ERROR
 | 
						|
vec4 uint;                 // okay
 | 
						|
precision mediump vec4;    // ERROR
 | 
						|
 | 
						|
int global_high;
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    lowp int sum = global_medium + global_high;
 | 
						|
 | 
						|
    gl_FragColor = vec4(color, 1.0);
 | 
						|
 | 
						|
    int level1_high;
 | 
						|
    sum += level1_high;
 | 
						|
 | 
						|
    precision lowp int;
 | 
						|
    int level1_low;
 | 
						|
    sum += level1_low;
 | 
						|
    
 | 
						|
    // test maxing precisions of args to get precision of builtin
 | 
						|
    lowp float arg1;
 | 
						|
    mediump float arg2;
 | 
						|
    lowp float d = distance(arg1, arg2);
 | 
						|
 | 
						|
    {
 | 
						|
        int level2_low;
 | 
						|
        sum += level2_low;
 | 
						|
        
 | 
						|
        precision highp int;
 | 
						|
        int level2_high;
 | 
						|
        sum += level2_high;
 | 
						|
        do {
 | 
						|
            if (true) {
 | 
						|
                precision mediump int;
 | 
						|
                int level4_medium;
 | 
						|
                sum += level4_medium;
 | 
						|
            }
 | 
						|
            int level3_high;
 | 
						|
            sum += level3_high;
 | 
						|
        } while (true);	
 | 
						|
        int level2_high2;
 | 
						|
        sum += level2_high2;
 | 
						|
    }
 | 
						|
    int level1_low3;
 | 
						|
    sum += level1_low3;
 | 
						|
 | 
						|
    sum += 4 + ((ivec2(level1_low3) * ivec2(level1_high) + ivec2((/* comma operator */level1_low3, level1_high)))).x;
 | 
						|
    
 | 
						|
    texture2D(samplerLow, vec2(0.1, 0.2));
 | 
						|
    texture2D(samplerMed, vec2(0.1, 0.2));
 | 
						|
    texture2D(samplerHigh, vec2(0.1, 0.2));
 | 
						|
}
 | 
						|
 | 
						|
precision mediump bool;                 // ERROR
 | 
						|
//precision mediump struct { int a; } s;  // ERROR
 | 
						|
struct s {int a;};
 | 
						|
precision mediump s;                    // ERROR
 | 
						|
mediump bvec2 b2;                       // ERROR
 |