Desktop: Implement desktop wrapper module (#3039)

* Prototyping desktop wrapper api

* Separate into multiple modules

* Some fixup

* Reimplement most functionality with editor api

* Fix texture life time crashes

* Fix scale

* Implement editor wrapper message queue

* Improve performance

* Handle native messages directly without submitting to event loop

* Fix overlay latency

* Move editor message execution to executor allows no shared state in editor wrapper

* Small clean up

* Small cleanup

* Some renames

* Cleaning up desktop wrapper interface

* Fix formatting

* Fix naming

* Move node graph execution result handling to app

* Fix FrontendMessage RenderOverlays usage

* Reimplement file drop and clean up file import and open messages

* Remove dbg

* Post merge fix

* Review changes
This commit is contained in:
Timon 2025-08-20 13:27:36 +00:00 committed by GitHub
parent a70c48f69a
commit 30e5d66105
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 558 additions and 265 deletions

View file

@ -52,7 +52,7 @@ impl Size for web_sys::HtmlCanvasElement {
#[derive(Debug, Clone)]
pub struct ImageTexture {
#[cfg(feature = "wgpu")]
pub texture: Arc<wgpu::Texture>,
pub texture: wgpu::Texture,
#[cfg(not(feature = "wgpu"))]
pub texture: (),
}

View file

@ -209,7 +209,7 @@ async fn render_canvas(render_config: RenderConfig, data: impl Render, editor: &
.await
.expect("Failed to render Vello scene");
RenderOutputType::Texture(ImageTexture { texture: Arc::new(texture) })
RenderOutputType::Texture(ImageTexture { texture })
}
}