aboutsummaryrefslogtreecommitdiff
path: root/src/render_helpers/shaders
diff options
context:
space:
mode:
Diffstat (limited to 'src/render_helpers/shaders')
-rw-r--r--src/render_helpers/shaders/border.frag4
-rw-r--r--src/render_helpers/shaders/clipped_surface.frag5
-rw-r--r--src/render_helpers/shaders/close_prelude.frag1
-rw-r--r--src/render_helpers/shaders/mod.rs1
-rw-r--r--src/render_helpers/shaders/open_prelude.frag1
-rw-r--r--src/render_helpers/shaders/resize_prelude.frag4
6 files changed, 13 insertions, 3 deletions
diff --git a/src/render_helpers/shaders/border.frag b/src/render_helpers/shaders/border.frag
index adbc124b..fe121037 100644
--- a/src/render_helpers/shaders/border.frag
+++ b/src/render_helpers/shaders/border.frag
@@ -5,6 +5,7 @@ uniform float niri_tint;
#endif
uniform float niri_alpha;
+uniform float niri_scale;
uniform vec2 niri_size;
varying vec2 niri_v_coords;
@@ -56,7 +57,8 @@ float rounding_alpha(vec2 coords, vec2 size, vec4 corner_radius) {
}
float dist = distance(coords, center);
- return 1.0 - smoothstep(radius - 0.5, radius + 0.5, dist);
+ float half_px = 0.5 / niri_scale;
+ return 1.0 - smoothstep(radius - half_px, radius + half_px, dist);
}
void main() {
diff --git a/src/render_helpers/shaders/clipped_surface.frag b/src/render_helpers/shaders/clipped_surface.frag
index 7bee28b1..f0c6e7f8 100644
--- a/src/render_helpers/shaders/clipped_surface.frag
+++ b/src/render_helpers/shaders/clipped_surface.frag
@@ -20,6 +20,8 @@ varying vec2 v_coords;
uniform float tint;
#endif
+uniform float niri_scale;
+
uniform vec2 geo_size;
uniform vec4 corner_radius;
uniform mat3 input_to_geo;
@@ -45,7 +47,8 @@ float rounding_alpha(vec2 coords, vec2 size) {
}
float dist = distance(coords, center);
- return 1.0 - smoothstep(radius - 0.5, radius + 0.5, dist);
+ float half_px = 0.5 / niri_scale;
+ return 1.0 - smoothstep(radius - half_px, radius + half_px, dist);
}
void main() {
diff --git a/src/render_helpers/shaders/close_prelude.frag b/src/render_helpers/shaders/close_prelude.frag
index db42190b..4d6abc71 100644
--- a/src/render_helpers/shaders/close_prelude.frag
+++ b/src/render_helpers/shaders/close_prelude.frag
@@ -18,4 +18,5 @@ uniform float niri_clamped_progress;
uniform float niri_random_seed;
uniform float niri_alpha;
+uniform float niri_scale;
diff --git a/src/render_helpers/shaders/mod.rs b/src/render_helpers/shaders/mod.rs
index 12e9d4ed..b4824931 100644
--- a/src/render_helpers/shaders/mod.rs
+++ b/src/render_helpers/shaders/mod.rs
@@ -55,6 +55,7 @@ impl Shaders {
.compile_custom_texture_shader(
include_str!("clipped_surface.frag"),
&[
+ UniformName::new("niri_scale", UniformType::_1f),
UniformName::new("geo_size", UniformType::_2f),
UniformName::new("corner_radius", UniformType::_4f),
UniformName::new("input_to_geo", UniformType::Matrix3x3),
diff --git a/src/render_helpers/shaders/open_prelude.frag b/src/render_helpers/shaders/open_prelude.frag
index db42190b..4d6abc71 100644
--- a/src/render_helpers/shaders/open_prelude.frag
+++ b/src/render_helpers/shaders/open_prelude.frag
@@ -18,4 +18,5 @@ uniform float niri_clamped_progress;
uniform float niri_random_seed;
uniform float niri_alpha;
+uniform float niri_scale;
diff --git a/src/render_helpers/shaders/resize_prelude.frag b/src/render_helpers/shaders/resize_prelude.frag
index 5c052277..519b1ee4 100644
--- a/src/render_helpers/shaders/resize_prelude.frag
+++ b/src/render_helpers/shaders/resize_prelude.frag
@@ -25,6 +25,7 @@ uniform vec4 niri_corner_radius;
uniform float niri_clip_to_geometry;
uniform float niri_alpha;
+uniform float niri_scale;
float niri_rounding_alpha(vec2 coords, vec2 size) {
vec2 center;
@@ -47,5 +48,6 @@ float niri_rounding_alpha(vec2 coords, vec2 size) {
}
float dist = distance(coords, center);
- return 1.0 - smoothstep(radius - 0.5, radius + 0.5, dist);
+ float half_px = 0.5 / niri_scale;
+ return 1.0 - smoothstep(radius - half_px, radius + half_px, dist);
}