From 255dc27e1a8cf0bf7a032e3ce4fced968027db02 Mon Sep 17 00:00:00 2001 From: not-elm Date: Thu, 19 Feb 2026 23:11:17 +0900 Subject: [PATCH] feat: sync WebviewSurface in render systems Co-Authored-By: Claude Opus 4.6 --- src/webview/mesh/webview_extend_material.rs | 6 +++++- src/webview/mesh/webview_extend_standard_material.rs | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/webview/mesh/webview_extend_material.rs b/src/webview/mesh/webview_extend_material.rs index 4badb52..5915a1b 100644 --- a/src/webview/mesh/webview_extend_material.rs +++ b/src/webview/mesh/webview_extend_material.rs @@ -1,4 +1,4 @@ -use crate::prelude::{WebviewMaterial, update_webview_image}; +use crate::prelude::{WebviewMaterial, WebviewSurface, update_webview_image}; use bevy::app::Plugin; use bevy::pbr::{ExtendedMaterial, MaterialExtension}; use bevy::prelude::*; @@ -35,6 +35,7 @@ where } fn render( + mut commands: Commands, mut er: MessageReader, mut images: ResMut>, mut materials: ResMut>>, @@ -48,6 +49,9 @@ fn render( .base .surface .get_or_insert_with(|| images.add(Image::default())); + commands + .entity(texture.webview) + .insert(WebviewSurface(handle.clone())); images.get_mut(handle.id()) } { diff --git a/src/webview/mesh/webview_extend_standard_material.rs b/src/webview/mesh/webview_extend_standard_material.rs index e658787..1959d83 100644 --- a/src/webview/mesh/webview_extend_standard_material.rs +++ b/src/webview/mesh/webview_extend_standard_material.rs @@ -1,4 +1,4 @@ -use crate::prelude::{WebviewMaterial, update_webview_image}; +use crate::prelude::{WebviewMaterial, WebviewSurface, update_webview_image}; use bevy::asset::*; use bevy::pbr::{ExtendedMaterial, MaterialExtension}; use bevy::prelude::*; @@ -31,6 +31,7 @@ impl MaterialExtension for WebviewMaterial { pub type WebviewExtendStandardMaterial = ExtendedMaterial; fn render_standard_materials( + mut commands: Commands, mut er: MessageReader, mut images: ResMut>, mut materials: ResMut>, @@ -44,6 +45,9 @@ fn render_standard_materials( .extension .surface .get_or_insert_with(|| images.add(Image::default())); + commands + .entity(texture.webview) + .insert(WebviewSurface(handle.clone())); images.get_mut(handle.id()) } {