blob: 460cf8386a15992da433f25139eec328eb3f5bd8 [file] [log] [blame]
group types "Types"
case float
version 310 es
desc "uniform of type float"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform float val = -1.25;
output float out0 = -1.25;
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump float geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mediump float geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case vec2
version 310 es
desc "uniform of type vec2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform vec2 val = vec2(-1.25, 1.25);
output vec2 out0 = vec2(-1.25, 1.25);
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump vec2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in vec2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case vec3
version 310 es
desc "uniform of type vec3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform vec3 val = vec3(-25.65, -7.25, 14.21);
output vec3 out0 = vec3(-25.65, -7.25, 14.21);
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump vec3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in vec3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case vec4
version 310 es
desc "uniform of type vec4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform vec4 val = vec4(-1.25, 1.25, -9.5, -12.2);
output vec4 out0 = vec4(-1.25, 1.25, -9.5, -12.2);
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump vec4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in vec4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat2
version 310 es
desc "uniform of type mat2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat2 val = mat2(-1.25, 1.25, -9.5, -12.2);
output mat2 out0 = mat2(-1.25, 1.25, -9.5, -12.2);
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat2x3
version 310 es
desc "uniform of type mat2x3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat2x3 val = [ mat2x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ];
output mat2x3 out0 = [ mat2x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat2x3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat2x4
version 310 es
desc "uniform of type mat2x4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat2x4 val = [ mat2x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ];
output mat2x4 out0 = [ mat2x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat2x4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat2x4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat3x2
version 310 es
desc "uniform of type mat3x2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat3x2 val = [ mat3x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ];
output mat3x2 out0 = [ mat3x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat3x2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat3
version 310 es
desc "uniform of type mat3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat3 val = [ mat3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 9.9) ];
output mat3 out0 = [ mat3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 9.9) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat3x4
version 310 es
desc "uniform of type mat3x4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat3x4 val = [ mat3x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ];
output mat3x4 out0 = [ mat3x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat3x4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat3x4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat4x2
version 310 es
desc "uniform of type mat4x2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat4x2 val = [ mat4x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ];
output mat4x2 out0 = [ mat4x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat4x2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat4x3
version 310 es
desc "uniform of type mat4x3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat4x3 val = [ mat4x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ];
output mat4x3 out0 = [ mat4x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat4x3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4x3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case mat4
version 310 es
desc "uniform of type mat4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform mat4 val = [ mat4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0) ];
output mat4 out0 = [ mat4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
out mediump mat4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp float;
${FRAGMENT_DECLARATIONS}
in mat4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case int
version 310 es
desc "uniform of type int"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform int val = 3;
output int out0 = 3;
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump int geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in int geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case ivec2
version 310 es
desc "uniform of type ivec2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform ivec2 val = [ ivec2(-25, 25) ];
output ivec2 out0 = [ ivec2(-25, 25) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump ivec2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case ivec3
version 310 es
desc "uniform of type ivec3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform ivec3 val = [ ivec3(-25, 25, -3) ];
output ivec3 out0 = [ ivec3(-25, 25, -3) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump ivec3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case ivec4
version 310 es
desc "uniform of type ivec4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform ivec4 val = [ ivec4(-25, 25, -3, 3) ];
output ivec4 out0 = [ ivec4(-25, 25, -3, 3) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump ivec4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in ivec4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case uint
version 310 es
desc "uniform of type int"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform uint val = [ 3 ];
output uint out0 = [ 3 ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump uint geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uint geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case uvec2
version 310 es
desc "uniform of type uvec2"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform uvec2 val = [ uvec2(16, 17) ];
output uvec2 out0 = [ uvec2(16, 17) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump uvec2 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec2 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case uvec3
version 310 es
desc "uniform of type uvec3"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform uvec3 val = [ uvec3(16, 17, 18) ];
output uvec3 out0 = [ uvec3(16, 17, 18) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump uvec3 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec3 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case uvec4
version 310 es
desc "uniform of type uvec4"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform uvec4 val = [ uvec4(16, 17, 18, 19) ];
output uvec4 out0 = [ uvec4(16, 17, 18, 19) ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
flat out mediump uvec4 geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision highp int;
${FRAGMENT_DECLARATIONS}
flat in uvec4 geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
case float_struct
version 310 es
desc "varying of struct type containing float"
require extension { "GL_OES_geometry_shader" | "GL_EXT_geometry_shader" } in { geometry }
values
{
uniform float val.val = [ 2.25 ];
output float out0 = [ 2.25 ];
}
vertex ""
#version 310 es
${VERTEX_DECLARATIONS}
void main()
{
${VERTEX_SETUP}
${VERTEX_OUTPUT}
}
""
geometry ""
#version 310 es
${GEOMETRY_DECLARATIONS}
struct S { mediump float val; };
uniform S val;
out mediump float geo_var;
void main()
{
for (int ndx = 0; ndx < gl_in.length(); ++ndx)
{
geo_var = val.val;
gl_Position = gl_in[ndx].gl_Position;
EmitVertex();
}
}
""
fragment ""
#version 310 es
precision mediump float;
${FRAGMENT_DECLARATIONS}
in mediump float geo_var;
void main()
{
out0 = geo_var;
${FRAGMENT_OUTPUT}
}
""
end
end