summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-03-12 14:25:05 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-03-12 14:25:05 -0500
commit2bf5ab202b6bd2d32d747f6651fa5f6f75296fd0 (patch)
tree41d8562c26e3d2ef121342bd1a8f5869776a8e1b
parent0ee6868b7f2ffbeb0af5644fa864aac824936939 (diff)
downloadgtk+-ngl-vertex-attributes.tar.gz
ngl: Identify shadersngl-vertex-attributes
Add a comment with a name to each shader. That makes identifying the shaders in apitrace much easier.
-rw-r--r--gsk/ngl/resources/blend.glsl3
-rw-r--r--gsk/ngl/resources/blit.glsl3
-rw-r--r--gsk/ngl/resources/blur.glsl4
-rw-r--r--gsk/ngl/resources/border.glsl21
-rw-r--r--gsk/ngl/resources/color.glsl4
-rw-r--r--gsk/ngl/resources/color_matrix.glsl3
-rw-r--r--gsk/ngl/resources/coloring.glsl3
-rw-r--r--gsk/ngl/resources/conic_gradient.glsl4
-rw-r--r--gsk/ngl/resources/cross_fade.glsl3
-rw-r--r--gsk/ngl/resources/custom.glsl4
-rw-r--r--gsk/ngl/resources/inset_shadow.glsl21
-rw-r--r--gsk/ngl/resources/linear_gradient.glsl3
-rw-r--r--gsk/ngl/resources/outset_shadow.glsl6
-rw-r--r--gsk/ngl/resources/radial_gradient.glsl4
-rw-r--r--gsk/ngl/resources/repeat.glsl3
-rw-r--r--gsk/ngl/resources/unblurred_outset_shadow.glsl20
16 files changed, 99 insertions, 10 deletions
diff --git a/gsk/ngl/resources/blend.glsl b/gsk/ngl/resources/blend.glsl
index 51670f8b78..066c20179d 100644
--- a/gsk/ngl/resources/blend.glsl
+++ b/gsk/ngl/resources/blend.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER:
+// blend.glsl
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
@@ -7,6 +8,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// blend.glsl
+
uniform int u_mode;
uniform sampler2D u_source2;
diff --git a/gsk/ngl/resources/blit.glsl b/gsk/ngl/resources/blit.glsl
index 93416bc6a4..c232be2bfd 100644
--- a/gsk/ngl/resources/blit.glsl
+++ b/gsk/ngl/resources/blit.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER:
+// blit.glsl
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
@@ -7,6 +8,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// blit.glsl
+
void main() {
vec4 diffuse = GskTexture(u_source, vUv);
diff --git a/gsk/ngl/resources/blur.glsl b/gsk/ngl/resources/blur.glsl
index f782ab48cc..7e7c1c2518 100644
--- a/gsk/ngl/resources/blur.glsl
+++ b/gsk/ngl/resources/blur.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// blur.glsl
+
uniform float u_blur_radius;
uniform vec2 u_blur_size;
uniform vec2 u_blur_dir;
@@ -25,6 +27,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// blur.glsl
+
_IN_ vec2 pixel_step;
_IN_ float pixels_per_side;
_IN_ vec3 initial_gaussian;
diff --git a/gsk/ngl/resources/border.glsl b/gsk/ngl/resources/border.glsl
index 997aeab3da..b3a71b99fb 100644
--- a/gsk/ngl/resources/border.glsl
+++ b/gsk/ngl/resources/border.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// border.glsl
+
uniform vec4 u_widths;
uniform vec4[3] u_outline_rect;
@@ -22,6 +24,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// border.glsl
+
uniform vec4[3] u_outline_rect;
_IN_ vec4 final_color;
@@ -30,10 +34,21 @@ _IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_inside_outline;
void main() {
vec2 frag = gsk_get_frag_coord();
+ float inside_coverage;
+
+ inside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag);
+ float alpha;
+
+ if (inside_coverage == 1.0)
+ alpha = 0.0;
+ else
+ {
+ float outside_coverage;
+
+ outside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag);
- float alpha = clamp(gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag) -
- gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag),
- 0.0, 1.0);
+ alpha = clamp(outside_coverage - inside_coverage, 0.0, 1.0);
+ }
gskSetOutputColor(final_color * alpha);
}
diff --git a/gsk/ngl/resources/color.glsl b/gsk/ngl/resources/color.glsl
index 5d2370bdf5..670b9979a2 100644
--- a/gsk/ngl/resources/color.glsl
+++ b/gsk/ngl/resources/color.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// color.glsl
+
_OUT_ vec4 final_color;
void main() {
@@ -8,6 +10,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// color.glsl
+
_IN_ vec4 final_color;
void main() {
diff --git a/gsk/ngl/resources/color_matrix.glsl b/gsk/ngl/resources/color_matrix.glsl
index 06e645b605..44dcf9a044 100644
--- a/gsk/ngl/resources/color_matrix.glsl
+++ b/gsk/ngl/resources/color_matrix.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER:
+// color_matrix.glsl
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
@@ -7,6 +8,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// color_matrix.glsl
+
uniform mat4 u_color_matrix;
uniform vec4 u_color_offset;
diff --git a/gsk/ngl/resources/coloring.glsl b/gsk/ngl/resources/coloring.glsl
index d7d2aed7d6..69b21c6e2e 100644
--- a/gsk/ngl/resources/coloring.glsl
+++ b/gsk/ngl/resources/coloring.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// coloring.glsl
+
_OUT_ vec4 final_color;
flat _OUT_ int use_color;
@@ -19,6 +21,7 @@ void main() {
}
// FRAGMENT_SHADER:
+// coloring.glsl
_IN_ vec4 final_color;
flat _IN_ int use_color;
diff --git a/gsk/ngl/resources/conic_gradient.glsl b/gsk/ngl/resources/conic_gradient.glsl
index 48a1cf7149..afb427bb15 100644
--- a/gsk/ngl/resources/conic_gradient.glsl
+++ b/gsk/ngl/resources/conic_gradient.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER
+// conic_gradient.glsl
+
uniform vec4 u_geometry;
_NOPERSPECTIVE_ _OUT_ vec2 coord;
@@ -14,6 +16,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// conic_gradient.glsl
+
#ifdef GSK_LEGACY
uniform int u_num_color_stops;
#else
diff --git a/gsk/ngl/resources/cross_fade.glsl b/gsk/ngl/resources/cross_fade.glsl
index dddc44fdd0..e61af597e9 100644
--- a/gsk/ngl/resources/cross_fade.glsl
+++ b/gsk/ngl/resources/cross_fade.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER:
+// cross_fade.glsl
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
@@ -7,6 +8,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// cross_fade.glsl
+
uniform float u_progress;
uniform sampler2D u_source2;
diff --git a/gsk/ngl/resources/custom.glsl b/gsk/ngl/resources/custom.glsl
index d2aed97fc8..6f91df6cf4 100644
--- a/gsk/ngl/resources/custom.glsl
+++ b/gsk/ngl/resources/custom.glsl
@@ -1,10 +1,14 @@
// VERTEX_SHADER:
+// custom.glsl
+
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
vUv = vec2(aUv.x, aUv.y);
}
// FRAGMENT_SHADER:
+// custom.glsl
+
// The shader supplies:
void mainImage(out vec4 fragColor, in vec2 fragCoord, in vec2 resolution, in vec2 uv);
diff --git a/gsk/ngl/resources/inset_shadow.glsl b/gsk/ngl/resources/inset_shadow.glsl
index aae2f2ebef..2b56dae184 100644
--- a/gsk/ngl/resources/inset_shadow.glsl
+++ b/gsk/ngl/resources/inset_shadow.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// inset_shadow.glsl
+
uniform float u_spread;
uniform vec2 u_offset;
uniform vec4[3] u_outline_rect;
@@ -25,16 +27,29 @@ void main() {
}
// FRAGMENT_SHADER:
+// inset_shadow.glsl
+
_IN_ vec4 final_color;
_IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_outside_outline;
_IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_inside_outline;
void main() {
vec2 frag = gsk_get_frag_coord();
+ float inside_coverage;
+
+ inside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag);
+ float alpha;
+
+ if (inside_coverage == 1.0)
+ alpha = 0.0;
+ else
+ {
+ float outside_coverage;
+
+ outside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag);
- float alpha = clamp(gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag) -
- gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag),
- 0.0, 1.0);
+ alpha = clamp(outside_coverage - inside_coverage, 0.0, 1.0);
+ }
gskSetOutputColor(final_color * alpha);
}
diff --git a/gsk/ngl/resources/linear_gradient.glsl b/gsk/ngl/resources/linear_gradient.glsl
index cc90392c06..1a2f2675e0 100644
--- a/gsk/ngl/resources/linear_gradient.glsl
+++ b/gsk/ngl/resources/linear_gradient.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER
+// linear_gradient.glsl
uniform vec4 u_points;
_NOPERSPECTIVE_ _OUT_ vec4 info;
@@ -39,6 +40,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// linear_gradient.glsl
+
#ifdef GSK_LEGACY
uniform int u_num_color_stops;
#else
diff --git a/gsk/ngl/resources/outset_shadow.glsl b/gsk/ngl/resources/outset_shadow.glsl
index e8a802e494..427aee956c 100644
--- a/gsk/ngl/resources/outset_shadow.glsl
+++ b/gsk/ngl/resources/outset_shadow.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// outset_shadow.glsl
+
uniform vec4[3] u_outline_rect;
_OUT_ vec4 final_color;
@@ -17,13 +19,15 @@ void main() {
}
// FRAGMENT_SHADER:
+// outset_shadow.glsl
+
_IN_ vec4 final_color;
_IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_outline;
void main() {
vec2 frag = gsk_get_frag_coord();
-
float alpha = GskTexture(u_source, vUv).a;
+
alpha *= (1.0 - clamp(gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outline), frag), 0.0, 1.0));
vec4 color = final_color * alpha;
diff --git a/gsk/ngl/resources/radial_gradient.glsl b/gsk/ngl/resources/radial_gradient.glsl
index 0ab3fdf07a..e8b57ef635 100644
--- a/gsk/ngl/resources/radial_gradient.glsl
+++ b/gsk/ngl/resources/radial_gradient.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER
+// radial_gradient.glsl
+
uniform vec4 u_geometry;
_NOPERSPECTIVE_ _OUT_ vec2 coord;
@@ -16,6 +18,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// radial_gradient.glsl
+
#ifdef GSK_LEGACY
uniform int u_num_color_stops;
#else
diff --git a/gsk/ngl/resources/repeat.glsl b/gsk/ngl/resources/repeat.glsl
index 654446c70f..5d39603396 100644
--- a/gsk/ngl/resources/repeat.glsl
+++ b/gsk/ngl/resources/repeat.glsl
@@ -1,4 +1,5 @@
// VERTEX_SHADER:
+// repeat.glsl
void main() {
gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
@@ -7,6 +8,8 @@ void main() {
}
// FRAGMENT_SHADER:
+// repeat.glsl
+
uniform vec4 u_child_bounds;
uniform vec4 u_texture_rect;
diff --git a/gsk/ngl/resources/unblurred_outset_shadow.glsl b/gsk/ngl/resources/unblurred_outset_shadow.glsl
index 56f0750e6d..0ce6790e98 100644
--- a/gsk/ngl/resources/unblurred_outset_shadow.glsl
+++ b/gsk/ngl/resources/unblurred_outset_shadow.glsl
@@ -1,4 +1,6 @@
// VERTEX_SHADER:
+// unblurred_outset_shadow.glsl
+
uniform float u_spread;
uniform vec2 u_offset;
uniform vec4[3] u_outline_rect;
@@ -25,16 +27,28 @@ void main() {
}
// FRAGMENT_SHADER:
+// unblurred_outset_shadow.glsl
_IN_ vec4 final_color;
_IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_outside_outline;
_IN_ _GSK_ROUNDED_RECT_UNIFORM_ transformed_inside_outline;
void main() {
vec2 frag = gsk_get_frag_coord();
+ float inside_coverage;
+
+ inside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag);
+ float alpha;
+
+ if (inside_coverage == 1.0)
+ alpha = 0.0;
+ else
+ {
+ float outside_coverage;
+
+ outside_coverage = gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag);
- float alpha = clamp(gsk_rounded_rect_coverage(gsk_decode_rect(transformed_outside_outline), frag) -
- gsk_rounded_rect_coverage(gsk_decode_rect(transformed_inside_outline), frag),
- 0.0, 1.0);
+ alpha = clamp(outside_coverage - inside_coverage, 0.0, 1.0);
+ }
gskSetOutputColor(final_color * alpha);
}