9ef702a37b
.. but this will only be supported on Vulkan, OpenGL 3.2+, and Open GL ES 3.2+ for the time being. The situation is: - Vulkan is working. qsb accepts .geom files already, and QShader has existing geometry shader support. - OpenGL 3.2 and OpenGL ES 3.2 are working. - D3D11 is not working. D3D11 supports geometry shaders, but SPIRV- Cross does not support translating geometry shaders to HLSL. - Metal is not working. Metal does not directly support geometry shaders. Change-Id: Ieb7c44c58b8be5f2e2197bf5133cf6847e6c132d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
27 lines
442 B
GLSL
27 lines
442 B
GLSL
#version 430
|
|
|
|
# define M_PI 3.14159265358979323846
|
|
|
|
layout(points) in;
|
|
layout(line_strip, max_vertices = 7) out;
|
|
|
|
layout(std140, binding = 0) uniform buf {
|
|
float radius;
|
|
};
|
|
|
|
void main(void)
|
|
{
|
|
|
|
for(int i=0;i<7;++i)
|
|
{
|
|
float theta = float(i) / 6.0f * 2.0 * M_PI;
|
|
|
|
gl_Position = gl_in[0].gl_Position;
|
|
gl_Position.xy += radius * vec2(cos(theta), sin(theta));
|
|
|
|
EmitVertex();
|
|
}
|
|
EndPrimitive();
|
|
|
|
}
|