From 564180a4fc377454a7225964f1fbce38ca405df7 Mon Sep 17 00:00:00 2001 From: Tushar Maheshwari Date: Sun, 21 Jul 2019 20:28:08 +0530 Subject: [PATCH] add a small gap between sectors --- src/backend/glsl_shaders/pie_gs.glsl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/glsl_shaders/pie_gs.glsl b/src/backend/glsl_shaders/pie_gs.glsl index 57227e8e..d6f80887 100644 --- a/src/backend/glsl_shaders/pie_gs.glsl +++ b/src/backend/glsl_shaders/pie_gs.glsl @@ -5,7 +5,7 @@ layout(triangle_strip, max_vertices = 64) out; const float Pi = 3.1415926535; const float radius = 0.75; const int PointsOnCircle = 42; -const vec4 center = vec4(0.0, 0.0, 0.0, 1.0); +const vec4 origin = vec4(0.0, 0.0, 0.0, 1.0); uniform mat4 viewMat; @@ -25,13 +25,16 @@ void main() int Points = max(int(PointsOnCircle * pos.y), 1); float stepAngle = 2 * Pi * pos.y / Points; + float midAngle = 2 * Pi * (pos.x + pos.y / 2); + vec4 center = vec4(origin.xy + 0.01 * vec2(cos(midAngle), sin(midAngle)), origin.zw); + for (int i = 0; i <= Points; ++i) { if ((i & 1) == 0) { gl_Position = viewMat * center; EmitVertex(); } - gl_Position = viewMat * vec4(center.xy + radius * vec2(cos(currAngle), sin(currAngle)), 0.0, 1.0); + gl_Position = viewMat * vec4(center.xy + radius * vec2(cos(currAngle), sin(currAngle)), center.zw); EmitVertex(); currAngle += stepAngle; }