diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-27 13:12:21 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-27 13:12:21 +0400 |
| commit | c1c43c53932314848ae42a43e12c0b3300e3d1a8 (patch) | |
| tree | 6cde924ea61c5a49c89f13fdb126a0f770e846f2 /src | |
| parent | 5899010c9646585dd539d4bb28acb32e4e7f2351 (diff) | |
| download | niri-c1c43c53932314848ae42a43e12c0b3300e3d1a8.tar.gz niri-c1c43c53932314848ae42a43e12c0b3300e3d1a8.tar.bz2 niri-c1c43c53932314848ae42a43e12c0b3300e3d1a8.zip | |
Fix size_curr_geo in resize shader
Diffstat (limited to 'src')
| -rw-r--r-- | src/render_helpers/resize.rs | 3 | ||||
| -rw-r--r-- | src/render_helpers/shaders/mod.rs | 1 | ||||
| -rw-r--r-- | src/render_helpers/shaders/resize-epilogue.frag | 2 | ||||
| -rw-r--r-- | src/render_helpers/shaders/resize-prelude.frag | 1 |
4 files changed, 6 insertions, 1 deletions
diff --git a/src/render_helpers/resize.rs b/src/render_helpers/resize.rs index f11c1487..26c73236 100644 --- a/src/render_helpers/resize.rs +++ b/src/render_helpers/resize.rs @@ -81,6 +81,8 @@ impl ResizeRenderElement { let geo_to_tex_next = Mat3::from_translation(-tex_next_geo_loc / tex_next_geo_size) * Mat3::from_scale(size_next / tex_next_geo_size * scale); + let curr_geo_size = curr_geo_size * scale; + // Create the shader. Shaders::get(renderer).resize().map(|shader| { Self(PrimaryGpuPixelShaderWithTexturesRenderElement::new( @@ -97,6 +99,7 @@ impl ResizeRenderElement { mat3_uniform("niri_input_to_curr_geo", input_to_curr_geo), mat3_uniform("niri_curr_geo_to_prev_geo", curr_geo_to_prev_geo), mat3_uniform("niri_curr_geo_to_next_geo", curr_geo_to_next_geo), + Uniform::new("niri_curr_geo_size", curr_geo_size.to_array()), mat3_uniform("niri_geo_to_tex_prev", geo_to_tex_prev), mat3_uniform("niri_geo_to_tex_next", geo_to_tex_next), Uniform::new("niri_progress", progress), diff --git a/src/render_helpers/shaders/mod.rs b/src/render_helpers/shaders/mod.rs index 8dc3263f..4c4530c5 100644 --- a/src/render_helpers/shaders/mod.rs +++ b/src/render_helpers/shaders/mod.rs @@ -92,6 +92,7 @@ fn compile_resize_program( UniformName::new("niri_input_to_curr_geo", UniformType::Matrix3x3), UniformName::new("niri_curr_geo_to_prev_geo", UniformType::Matrix3x3), UniformName::new("niri_curr_geo_to_next_geo", UniformType::Matrix3x3), + UniformName::new("niri_curr_geo_size", UniformType::_2f), UniformName::new("niri_geo_to_tex_prev", UniformType::Matrix3x3), UniformName::new("niri_geo_to_tex_next", UniformType::Matrix3x3), UniformName::new("niri_progress", UniformType::_1f), diff --git a/src/render_helpers/shaders/resize-epilogue.frag b/src/render_helpers/shaders/resize-epilogue.frag index b3eafc7c..b857d57e 100644 --- a/src/render_helpers/shaders/resize-epilogue.frag +++ b/src/render_helpers/shaders/resize-epilogue.frag @@ -1,7 +1,7 @@ void main() { vec3 coords_curr_geo = niri_input_to_curr_geo * vec3(niri_v_coords, 1.0); - vec3 size_curr_geo = niri_input_to_curr_geo * vec3(niri_size, 1.0); + vec3 size_curr_geo = vec3(niri_curr_geo_size, 1.0); vec4 color = resize_color(coords_curr_geo, size_curr_geo); diff --git a/src/render_helpers/shaders/resize-prelude.frag b/src/render_helpers/shaders/resize-prelude.frag index 95587702..86423ce9 100644 --- a/src/render_helpers/shaders/resize-prelude.frag +++ b/src/render_helpers/shaders/resize-prelude.frag @@ -8,6 +8,7 @@ uniform vec2 niri_size; uniform mat3 niri_input_to_curr_geo; uniform mat3 niri_curr_geo_to_prev_geo; uniform mat3 niri_curr_geo_to_next_geo; +uniform vec2 niri_curr_geo_size; uniform sampler2D niri_tex_prev; uniform mat3 niri_geo_to_tex_prev; |
