1617a3babSopenharmony_ci#version 420 core 2617a3babSopenharmony_ci 3617a3babSopenharmony_ci// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with 4617a3babSopenharmony_ci 5617a3babSopenharmony_ciint i; 6617a3babSopenharmony_ci 7617a3babSopenharmony_civoid foo() 8617a3babSopenharmony_ci{ 9617a3babSopenharmony_ci gl_in.length(); // ERROR 10617a3babSopenharmony_ci gl_in[1].gl_Position; 11617a3babSopenharmony_ci gl_in[i].gl_Position; // ERROR 12617a3babSopenharmony_ci} 13617a3babSopenharmony_ci 14617a3babSopenharmony_cilayout(triangles) in; 15617a3babSopenharmony_ci 16617a3babSopenharmony_ciin vec4 color3[3]; 17617a3babSopenharmony_ci 18617a3babSopenharmony_civoid foo3() 19617a3babSopenharmony_ci{ 20617a3babSopenharmony_ci gl_in.length(); 21617a3babSopenharmony_ci gl_in[i].gl_Position; 22617a3babSopenharmony_ci color3.length(); 23617a3babSopenharmony_ci} 24617a3babSopenharmony_ci 25617a3babSopenharmony_ciuniform sampler2D s2D; 26617a3babSopenharmony_ciin vec2 coord[]; 27617a3babSopenharmony_ciuniform vec4 v4; 28617a3babSopenharmony_ci 29617a3babSopenharmony_civoid foo4() 30617a3babSopenharmony_ci{ 31617a3babSopenharmony_ci const ivec2 offsets[5] = 32617a3babSopenharmony_ci { 33617a3babSopenharmony_ci ivec2(0,1), 34617a3babSopenharmony_ci ivec2(1,-2), 35617a3babSopenharmony_ci ivec2(0,3), 36617a3babSopenharmony_ci ivec2(-3,0), 37617a3babSopenharmony_ci ivec2(2,1) 38617a3babSopenharmony_ci }; 39617a3babSopenharmony_ci 40617a3babSopenharmony_ci vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); 41617a3babSopenharmony_ci 42617a3babSopenharmony_ci offsets[i].xy = ivec2(3); // ERROR 43617a3babSopenharmony_ci v4.x = 3.2; // ERROR 44617a3babSopenharmony_ci v4.xy; // should have non-uniform type 45617a3babSopenharmony_ci} 46617a3babSopenharmony_ci 47617a3babSopenharmony_ciout gl_PerVertex { 48617a3babSopenharmony_ci float gl_PointSize[1]; // ERROR, adding array 49617a3babSopenharmony_ci float gl_ClipDistance; // ERROR, removing array 50617a3babSopenharmony_ci}; 51617a3babSopenharmony_ci 52617a3babSopenharmony_cifloat foo5() 53617a3babSopenharmony_ci{ 54617a3babSopenharmony_ci return i; // implicit conversion of return type 55617a3babSopenharmony_ci} 56