shaders: Add clipped-surface shader
This commit is contained in:
parent
ea429a778e
commit
2f39c9682c
5 changed files with 369 additions and 2 deletions
|
|
@ -12,7 +12,13 @@ use std::{
|
|||
#[cfg(feature = "debug")]
|
||||
use crate::debug::fps_ui;
|
||||
use crate::{
|
||||
backend::{kms::render::gles::GbmGlowBackend, render::element::DamageElement},
|
||||
backend::{
|
||||
kms::render::gles::GbmGlowBackend,
|
||||
render::{
|
||||
clipped_surface::{CLIPPING_SHADER, ClippingShader},
|
||||
element::DamageElement,
|
||||
},
|
||||
},
|
||||
config::ScreenFilter,
|
||||
shell::{
|
||||
CosmicMappedRenderElement, OverviewMode, SeatExt, Trigger, WorkspaceDelta,
|
||||
|
|
@ -75,7 +81,7 @@ use smithay::{
|
|||
use smithay_egui::EguiState;
|
||||
|
||||
pub mod animations;
|
||||
|
||||
pub mod clipped_surface;
|
||||
pub mod cursor;
|
||||
pub mod element;
|
||||
use self::element::{AsGlowRenderer, CosmicElement};
|
||||
|
|
@ -400,6 +406,14 @@ pub fn init_shaders(renderer: &mut GlesRenderer) -> Result<(), GlesError> {
|
|||
UniformName::new("color_mode", UniformType::_1f),
|
||||
],
|
||||
)?;
|
||||
let clipping_shader = renderer.compile_custom_texture_shader(
|
||||
CLIPPING_SHADER,
|
||||
&[
|
||||
UniformName::new("geo_size", UniformType::_2f),
|
||||
UniformName::new("corner_radius", UniformType::_4f),
|
||||
UniformName::new("input_to_geo", UniformType::Matrix3x3),
|
||||
],
|
||||
)?;
|
||||
|
||||
let egl_context = renderer.egl_context();
|
||||
egl_context
|
||||
|
|
@ -411,6 +425,9 @@ pub fn init_shaders(renderer: &mut GlesRenderer) -> Result<(), GlesError> {
|
|||
egl_context
|
||||
.user_data()
|
||||
.insert_if_missing(|| PostprocessShader(postprocess_shader));
|
||||
egl_context
|
||||
.user_data()
|
||||
.insert_if_missing(|| ClippingShader(clipping_shader));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue