penpot/render-wasm/src/render/shadows.rs
Alejandro 09131f7533
🎉 Render drop shadows (wasm) (#5693)
Co-authored-by: Belén Albeza <belen@hey.com>
2025-01-28 15:10:06 +01:00

25 lines
808 B
Rust

use skia_safe::{self as skia};
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);
render_state.drawing_surface.draw(
&mut 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.final_surface.canvas(),
(0.0, 0.0),
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
Some(&skia::Paint::default()),
);
render_state
.shadow_surface
.canvas()
.clear(skia::Color::TRANSPARENT);
}