From 8a32d4b48f4117605ba09a29efd4c0d52e7c0be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 31 Aug 2026 19:23:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E9=A2=84=E8=A7=88=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E5=B0=BA=E5=AF=B8=E6=B8=B2=E6=9F=93=20UI=20=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除设计图宽高计算与 aspect-ratio 约束 让树容器填充调用方父容器尺寸 整理组件渲染子模块路径 --- .../html_renderer/{ => component}/image.rs | 4 ++-- .../{component.rs => component/mod.rs} | 7 +++++-- .../html_renderer/{ => component}/text.rs | 2 +- .../src-tauri/src/ui_editor/html_renderer/mod.rs | 14 +++----------- 4 files changed, 11 insertions(+), 16 deletions(-) rename apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/{ => component}/image.rs (97%) rename apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/{component.rs => component/mod.rs} (97%) rename apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/{ => component}/text.rs (98%) diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/image.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs similarity index 97% rename from apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/image.rs rename to apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs index c63b39237..1c3ffb5a4 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/image.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs @@ -1,12 +1,12 @@ -use super::assets::{finite_positive, trim_float}; use crate::ui_editor::component::image::{ FillMethod, HorizontalFillOrigin, ImageType, Radial180Origin, Radial360Origin, Radial90Origin, VerticalFillOrigin, }; +use crate::ui_editor::html_renderer::assets::{finite_positive, trim_float}; const UI_SCALE: &str = "var(--ui-scale, 1)"; -pub(super) fn image_styles( +pub(in crate::ui_editor::html_renderer) fn image_styles( image_type: &ImageType, sprite: &crate::ui_editor::resource::sprite::SpriteAsset, src: &str, diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/mod.rs similarity index 97% rename from apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component.rs rename to apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/mod.rs index 68ea12110..237512aef 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/mod.rs @@ -1,10 +1,13 @@ use super::assets::{asset_url, hex_id}; -use super::image::image_styles; -use super::text::text_style; use crate::ui_editor::component::text::FontSource; use crate::ui_editor::component::Component; use crate::ui_editor::state::State; +use image::image_styles; use maud::{html, Markup}; +use text::text_style; + +mod image; +mod text; pub(super) fn render_component(state: &State, component: &Component) -> Result { match component { diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/text.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/text.rs similarity index 98% rename from apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/text.rs rename to apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/text.rs index 5857900e4..9fcaa1606 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/text.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/text.rs @@ -4,7 +4,7 @@ use crate::ui_editor::component::text::{ const UI_SCALE: &str = "var(--ui-scale, 1)"; -pub(super) fn text_style( +pub(in crate::ui_editor::html_renderer) fn text_style( font_style: FontStyle, alignment: TextAlignment, sizing: FontSizing, diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/mod.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/mod.rs index ce53ef471..389c82c73 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/mod.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/mod.rs @@ -1,11 +1,9 @@ mod assets; mod component; mod container; -mod image; mod node; -mod text; -use self::assets::{finite_positive, font_face_rule, hex_id, html_comment}; +use self::assets::{font_face_rule, hex_id, html_comment}; use self::component::render_component; use self::container::{child_container_style, container_style}; use self::node::{is_container, transform_style}; @@ -56,21 +54,15 @@ pub(crate) fn render_ui_design_state_html(state: &State) -> Result Result { - let image = state + state .ui_design_images .get(&tree.src_ui_design) .ok_or_else(|| format!("UITree 缺少 src_ui_design:{}", tree.src_ui_design.as_str()))?; - let width = finite_positive(image.pixel_size.x, "UI design width")? - / finite_positive(image.pixels_per_unit.get(), "UI design pixelsPerUnit")?; - let height = finite_positive(image.pixel_size.y, "UI design height")? - / finite_positive(image.pixels_per_unit.get(), "UI design pixelsPerUnit")?; let tree_comment = html_comment( "genarrative-ui-tree", json!({"srcUiDesign": tree.src_ui_design.as_str()}), ); - let style = format!( - "position:relative;width:100%;height:auto;min-height:0;aspect-ratio:{width} / {height};" - ); + let style = "position:relative;width:100%;height:100%;min-height:0;"; Ok(html! { (tree_comment) div data-ui-tree=(tree.src_ui_design.as_str()) style=(style) {