element/wayland: Add blur background-effect
This commit is contained in:
parent
e4c0716951
commit
a9bf89d8b2
10 changed files with 747 additions and 5 deletions
|
|
@ -19,6 +19,7 @@ use crate::{
|
|||
shadow::{SHADOW_SHADER, ShadowShader},
|
||||
wayland::{
|
||||
SurfaceRenderElement,
|
||||
blur_effect::BlurShaders,
|
||||
clipped_surface::{CLIPPING_SHADER, ClippingShader},
|
||||
push_render_elements_from_surface_tree,
|
||||
},
|
||||
|
|
@ -425,6 +426,7 @@ pub fn init_shaders(renderer: &mut GlesRenderer) -> Result<(), GlesError> {
|
|||
UniformName::new("geo_size", UniformType::_2f),
|
||||
UniformName::new("corner_radius", UniformType::_4f),
|
||||
UniformName::new("input_to_geo", UniformType::Matrix3x3),
|
||||
UniformName::new("noise", UniformType::_1f),
|
||||
],
|
||||
)?;
|
||||
let shadow_shader = renderer.compile_custom_pixel_shader(
|
||||
|
|
@ -440,6 +442,7 @@ pub fn init_shaders(renderer: &mut GlesRenderer) -> Result<(), GlesError> {
|
|||
UniformName::new("window_corner_radius", UniformType::_4f),
|
||||
],
|
||||
)?;
|
||||
let blur_shaders = BlurShaders::compile(renderer)?;
|
||||
|
||||
let egl_context = renderer.egl_context();
|
||||
egl_context
|
||||
|
|
@ -457,6 +460,7 @@ pub fn init_shaders(renderer: &mut GlesRenderer) -> Result<(), GlesError> {
|
|||
egl_context
|
||||
.user_data()
|
||||
.insert_if_missing(|| ShadowShader(shadow_shader));
|
||||
egl_context.user_data().insert_if_missing(|| blur_shaders);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue