|
#version 150 core |
|
|
|
in fromVertex { |
|
in vec3 color; |
|
} fromV[]; |
|
|
|
out toFragment { |
|
out vec3 color; |
|
} toF; |
|
|
|
out fromVertex { |
|
vec3 color; |
|
}; |
|
|
|
out fooB { |
|
vec2 color; |
|
} fromVertex; |
|
|
|
int fromVertex; |
|
|
|
out fooC { |
|
vec2 color; |
|
} fooC; |
|
|
|
void main() |
|
{ |
|
EmitVertex(); |
|
EndPrimitive(); |
|
EmitStreamVertex(1); |
|
EndStreamPrimitive(0); |
|
|
|
color = fromV[0].color; |
|
gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2]; |
|
gl_Position = gl_in[0].gl_Position; |
|
gl_PointSize = gl_in[3].gl_PointSize; |
|
gl_PrimitiveID = gl_PrimitiveIDIn; |
|
gl_Layer = 2; |
|
} |
|
|
|
out vec4 ov0; |
|
layout(stream = 4) out vec4 ov4; |
|
out vec4 o1v0; |
|
|
|
layout(stream = 3) uniform; |
|
layout(stream = 3) in; |
|
layout(stream = 3) uniform int ua; |
|
layout(stream = 3) uniform ubb { int ua; } ibb; |
|
|
|
layout(line_strip, points, triangle_strip, stream = 3, points, triangle_strip) out; |
|
layout(stream = 3, triangle_strip) out; |
|
out vec4 ov3; |
|
|
|
layout(stream = 6) out ooutb { vec4 a; } ouuaa6; |
|
|
|
layout(stream = 6) out ooutb2 { |
|
layout(stream = 6) vec4 a; |
|
} ouua6; |
|
|
|
layout(stream = 7) out ooutb3 { |
|
layout(stream = 6) vec4 a; |
|
} ouua7; |
|
|
|
out vec4 ov2s3; |
|
|
|
layout(max_vertices = 200) out; |
|
layout(max_vertices = 300) out; |
|
void foo(layout(max_vertices = 4) int a) |
|
{ |
|
ouuaa6.a = vec4(1.0); |
|
} |
|
|
|
layout(line_strip, points, triangle_strip, stream = 3, points) out; |
|
layout(line_strip, points, stream = 3) out; |
|
layout(triangle_strip) in; |
|
layout(triangle_strip) uniform; |
|
layout(triangle_strip) out vec4 badv4; |
|
layout(triangle_strip) in vec4 bad2v4[]; |
|
layout(invocations = 3) out outbn { int a; }; |
|
out outbn2 { |
|
layout(invocations = 3) int a; |
|
layout(max_vertices = 3) int b; |
|
layout(triangle_strip) int c; |
|
} outbi; |
|
|
|
layout(lines) out; |
|
layout(lines_adjacency) in; |
|
layout(triangles) in; |
|
layout(triangles_adjacency) in; |
|
layout(invocations = 4) in; |
|
|
|
in inbn { |
|
layout(stream = 2) int a; |
|
} inbi[]; |
|
|
|
in sameName { |
|
int a15; |
|
} insn[]; |
|
|
|
out sameName { |
|
float f15; |
|
}; |
|
|
|
uniform sameName { |
|
bool b15; |
|
}; |
|
|
|
float summ = gl_MaxVertexAttribs + |
|
gl_MaxVertexUniformComponents + |
|
gl_MaxVaryingFloats + |
|
gl_MaxVaryingComponents + |
|
gl_MaxVertexOutputComponents + |
|
gl_MaxGeometryInputComponents + |
|
gl_MaxGeometryOutputComponents + |
|
gl_MaxFragmentInputComponents + |
|
gl_MaxVertexTextureImageUnits + |
|
gl_MaxCombinedTextureImageUnits + |
|
gl_MaxTextureImageUnits + |
|
gl_MaxFragmentUniformComponents + |
|
gl_MaxDrawBuffers + |
|
gl_MaxClipDistances + |
|
gl_MaxGeometryTextureImageUnits + |
|
gl_MaxGeometryOutputVertices + |
|
gl_MaxGeometryTotalOutputComponents + |
|
gl_MaxGeometryUniformComponents + |
|
gl_MaxGeometryVaryingComponents; |
|
|
|
void fooe1() |
|
{ |
|
gl_ViewportIndex = gl_MaxViewports - 1; |
|
} |
|
|
|
#extension GL_ARB_viewport_array : enable |
|
|
|
void fooe2() |
|
{ |
|
gl_ViewportIndex = gl_MaxViewports - 1; |
|
} |
|
|
|
out int gl_ViewportIndex; |
|
|