🎉 Implement inner shadows (wasm) (#5767)

* 🎉 Implement inner shadows (wasm)

* 🐛 Fix reset canvas problem

---------

Co-authored-by: alonso.torres <alonso.torres@kaleidos.net>
This commit is contained in:
Belén Albeza 2025-02-14 13:46:30 +01:00 committed by GitHub
parent 2ffb77cb4d
commit 6cbaacf1e0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 127 additions and 20 deletions

View file

@ -4,7 +4,7 @@ use super::RenderState;
use crate::shapes::Shadow;
pub fn render_drop_shadow(render_state: &mut RenderState, shadow: &Shadow, scale: f32) {
let shadow_paint = shadow.to_paint(true, scale);
let shadow_paint = shadow.to_paint(scale);
render_state.drawing_surface.draw(
&mut render_state.shadow_surface.canvas(),
(0.0, 0.0),
@ -18,6 +18,30 @@ pub fn render_drop_shadow(render_state: &mut RenderState, shadow: &Shadow, scale
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
Some(&skia::Paint::default()),
);
render_state
.shadow_surface
.canvas()
.clear(skia::Color::TRANSPARENT);
}
pub fn render_inner_shadow(render_state: &mut RenderState, shadow: &Shadow, scale: f32) {
let shadow_paint = shadow.to_paint(scale);
render_state.drawing_surface.draw(
render_state.shadow_surface.canvas(),
(0.0, 0.0),
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
Some(&shadow_paint),
);
render_state.shadow_surface.draw(
&mut render_state.overlay_surface.canvas(),
(0.0, 0.0),
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
None,
);
render_state
.shadow_surface
.canvas()