mirror of
https://github.com/penpot/penpot.git
synced 2025-06-17 09:21:39 +02:00
🎉 Non blocking render wasm (#5726)
This commit is contained in:
parent
f65f7d68e6
commit
8f11a925df
8 changed files with 210 additions and 174 deletions
|
@ -1,19 +1,6 @@
|
|||
use super::{Image, Viewbox};
|
||||
use skia::Contains;
|
||||
use skia_safe as skia;
|
||||
|
||||
pub(crate) struct CachedSurfaceImage {
|
||||
pub image: Image,
|
||||
pub viewbox: Viewbox,
|
||||
pub has_all_shapes: bool,
|
||||
}
|
||||
|
||||
impl CachedSurfaceImage {
|
||||
pub fn is_dirty_for_zooming(&mut self, viewbox: &Viewbox) -> bool {
|
||||
!self.has_all_shapes && !self.viewbox.area.contains(viewbox.area)
|
||||
}
|
||||
|
||||
pub fn is_dirty_for_panning(&mut self, _viewbox: &Viewbox) -> bool {
|
||||
!self.has_all_shapes
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ fn render_debug_view(render_state: &mut RenderState) {
|
|||
}
|
||||
|
||||
pub fn render_wasm_label(render_state: &mut RenderState) {
|
||||
let canvas = render_state.final_surface.canvas();
|
||||
let canvas = render_state.render_surface.canvas();
|
||||
|
||||
let skia::ISize { width, height } = canvas.base_layer_size();
|
||||
let p = skia::Point::new(width as f32 - 100.0, height as f32 - 25.0);
|
||||
|
@ -66,7 +66,7 @@ pub fn render(render_state: &mut RenderState) {
|
|||
let paint = skia::Paint::default();
|
||||
render_debug_view(render_state);
|
||||
render_state.debug_surface.draw(
|
||||
&mut render_state.final_surface.canvas(),
|
||||
&mut render_state.render_surface.canvas(),
|
||||
(0.0, 0.0),
|
||||
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
|
||||
Some(&paint),
|
||||
|
|
|
@ -13,7 +13,7 @@ pub fn render_drop_shadow(render_state: &mut RenderState, shadow: &Shadow, scale
|
|||
);
|
||||
|
||||
render_state.shadow_surface.draw(
|
||||
&mut render_state.final_surface.canvas(),
|
||||
&mut render_state.render_surface.canvas(),
|
||||
(0.0, 0.0),
|
||||
skia::SamplingOptions::new(skia::FilterMode::Linear, skia::MipmapMode::Nearest),
|
||||
Some(&skia::Paint::default()),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue