diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-01 12:27:30 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-10 18:08:00 +0300 |
| commit | 3c63be6261f3420008366b41b3df6d57b3ec3867 (patch) | |
| tree | c937af80e68e25d6a0d18aeae9338a4a161d83ab /src/layout/opening_window.rs | |
| parent | e3406ac2556c7f68cd00f11b5856222dcce7f680 (diff) | |
| download | niri-3c63be6261f3420008366b41b3df6d57b3ec3867.tar.gz niri-3c63be6261f3420008366b41b3df6d57b3ec3867.tar.bz2 niri-3c63be6261f3420008366b41b3df6d57b3ec3867.zip | |
Implement our own TextureBuffer/RenderElement
Supports fractional texture scale + has some getters.
Diffstat (limited to 'src/layout/opening_window.rs')
| -rw-r--r-- | src/layout/opening_window.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/layout/opening_window.rs b/src/layout/opening_window.rs index 1a8b3b99..38eb89ab 100644 --- a/src/layout/opening_window.rs +++ b/src/layout/opening_window.rs @@ -4,13 +4,12 @@ use std::time::Duration; use anyhow::Context as _; use glam::{Mat3, Vec2}; use smithay::backend::allocator::Fourcc; -use smithay::backend::renderer::element::texture::TextureRenderElement; use smithay::backend::renderer::element::utils::{ Relocate, RelocateRenderElement, RescaleRenderElement, }; -use smithay::backend::renderer::element::{Id, Kind, RenderElement}; +use smithay::backend::renderer::element::{Kind, RenderElement}; use smithay::backend::renderer::gles::{GlesRenderer, Uniform}; -use smithay::backend::renderer::{Renderer as _, Texture}; +use smithay::backend::renderer::Texture; use smithay::utils::{Logical, Point, Rectangle, Scale, Size, Transform}; use crate::animation::Animation; @@ -19,6 +18,7 @@ use crate::render_helpers::primary_gpu_texture::PrimaryGpuTextureRenderElement; use crate::render_helpers::render_to_encompassing_texture; use crate::render_helpers::shader_element::ShaderRenderElement; use crate::render_helpers::shaders::{mat3_uniform, ProgramType, Shaders}; +use crate::render_helpers::texture::{TextureBuffer, TextureRenderElement}; #[derive(Debug)] pub struct OpenAnimation { @@ -122,15 +122,12 @@ impl OpenAnimation { .into()); } - let elem = TextureRenderElement::from_static_texture( - Id::new(), - renderer.id(), + let buffer = + TextureBuffer::from_texture(renderer, texture, scale, Transform::Normal, Vec::new()); + let elem = TextureRenderElement::from_texture_buffer( + buffer, Point::from((0., 0.)), - texture.clone(), - scale.x as i32, - Transform::Normal, - Some(clamped_progress as f32), - None, + clamped_progress as f32, None, None, Kind::Unspecified, |
