aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickshapes/shaders_ng/radialgradient.vert
diff options
context:
space:
mode:
Diffstat (limited to 'src/quickshapes/shaders_ng/radialgradient.vert')
-rw-r--r--src/quickshapes/shaders_ng/radialgradient.vert31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/quickshapes/shaders_ng/radialgradient.vert b/src/quickshapes/shaders_ng/radialgradient.vert
new file mode 100644
index 0000000000..16c8406b23
--- /dev/null
+++ b/src/quickshapes/shaders_ng/radialgradient.vert
@@ -0,0 +1,31 @@
+#version 440
+
+layout(location = 0) in vec4 vertexCoord;
+layout(location = 1) in vec4 vertexColor;
+
+layout(location = 0) out vec2 coord;
+
+layout(std140, binding = 0) uniform buf {
+#if QSHADER_VIEW_COUNT >= 2
+ mat4 matrix[QSHADER_VIEW_COUNT];
+#else
+ mat4 matrix;
+#endif
+ mat4 gradientMatrix;
+ vec2 translationPoint;
+ vec2 focalToCenter;
+ float centerRadius;
+ float focalRadius;
+ float opacity;
+} ubuf;
+
+void main()
+{
+ vec2 gradVertexCoord = (ubuf.gradientMatrix * vertexCoord).xy;
+ coord = gradVertexCoord - ubuf.translationPoint;
+#if QSHADER_VIEW_COUNT >= 2
+ gl_Position = ubuf.matrix[gl_ViewIndex] * vertexCoord;
+#else
+ gl_Position = ubuf.matrix * vertexCoord;
+#endif
+}