diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-27 12:54:19 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-27 13:11:25 +0400 |
| commit | 5899010c9646585dd539d4bb28acb32e4e7f2351 (patch) | |
| tree | 5f203b3b5f8f54e533ab618190cdc595ff17ffe7 /src | |
| parent | 9f3715b7312c69405b0831f2bda7bb358f0227f0 (diff) | |
| download | niri-5899010c9646585dd539d4bb28acb32e4e7f2351.tar.gz niri-5899010c9646585dd539d4bb28acb32e4e7f2351.tar.bz2 niri-5899010c9646585dd539d4bb28acb32e4e7f2351.zip | |
Extract mat3_uniform
Diffstat (limited to 'src')
| -rw-r--r-- | src/render_helpers/resize.rs | 26 | ||||
| -rw-r--r-- | src/render_helpers/shaders/mod.rs | 13 |
2 files changed, 19 insertions, 20 deletions
diff --git a/src/render_helpers/resize.rs b/src/render_helpers/resize.rs index 73406c27..f11c1487 100644 --- a/src/render_helpers/resize.rs +++ b/src/render_helpers/resize.rs @@ -2,15 +2,13 @@ use std::collections::HashMap; use glam::{Mat3, Vec2}; use smithay::backend::renderer::element::{Element, Id, Kind, RenderElement, UnderlyingStorage}; -use smithay::backend::renderer::gles::{ - GlesError, GlesFrame, GlesRenderer, GlesTexture, Uniform, UniformValue, -}; +use smithay::backend::renderer::gles::{GlesError, GlesFrame, GlesRenderer, GlesTexture, Uniform}; use smithay::backend::renderer::utils::{CommitCounter, DamageSet}; use smithay::utils::{Buffer, Logical, Physical, Rectangle, Scale, Size, Transform}; use super::primary_gpu_pixel_shader_with_textures::PrimaryGpuPixelShaderWithTexturesRenderElement; use super::renderer::AsGlesFrame; -use super::shaders::Shaders; +use super::shaders::{mat3_uniform, Shaders}; use crate::backend::tty::{TtyFrame, TtyRenderer, TtyRendererError}; #[derive(Debug)] @@ -84,16 +82,6 @@ impl ResizeRenderElement { * Mat3::from_scale(size_next / tex_next_geo_size * scale); // Create the shader. - let make_uniform = |name, mat: Mat3| { - Uniform::new( - name, - UniformValue::Matrix3x3 { - matrices: vec![mat.to_cols_array()], - transpose: false, - }, - ) - }; - Shaders::get(renderer).resize().map(|shader| { Self(PrimaryGpuPixelShaderWithTexturesRenderElement::new( shader, @@ -106,11 +94,11 @@ impl ResizeRenderElement { None, result_alpha, vec![ - make_uniform("niri_input_to_curr_geo", input_to_curr_geo), - make_uniform("niri_curr_geo_to_prev_geo", curr_geo_to_prev_geo), - make_uniform("niri_curr_geo_to_next_geo", curr_geo_to_next_geo), - make_uniform("niri_geo_to_tex_prev", geo_to_tex_prev), - make_uniform("niri_geo_to_tex_next", geo_to_tex_next), + 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), + 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), Uniform::new("niri_clamped_progress", clamped_progress), ], diff --git a/src/render_helpers/shaders/mod.rs b/src/render_helpers/shaders/mod.rs index f03e168a..8dc3263f 100644 --- a/src/render_helpers/shaders/mod.rs +++ b/src/render_helpers/shaders/mod.rs @@ -1,7 +1,8 @@ use std::cell::RefCell; +use glam::Mat3; use smithay::backend::renderer::gles::{ - GlesError, GlesPixelProgram, GlesRenderer, UniformName, UniformType, + GlesError, GlesPixelProgram, GlesRenderer, Uniform, UniformName, UniformType, UniformValue, }; use super::primary_gpu_pixel_shader_with_textures::PixelWithTexturesProgram; @@ -119,3 +120,13 @@ pub fn set_custom_resize_program(renderer: &mut GlesRenderer, src: Option<&str>) } } } + +pub fn mat3_uniform(name: &str, mat: Mat3) -> Uniform { + Uniform::new( + name, + UniformValue::Matrix3x3 { + matrices: vec![mat.to_cols_array()], + transpose: false, + }, + ) +} |
