更新 2.19
2026/6/6
v2.19.0BETA
Seymour
MODEL VIEWER EMBEDDED 在編輯器內(無瀏覽器):原生 WebView2 於面板中
- 劇情轉折的第二階段:816 個模型的 SAME three.js 檢視器現在 INSIDE 編輯器視窗,位於一個面板中——在「擴充功能」卡片中新增一個 「模型檢視器(嵌入)🐉」 按鈕 →
SetModule顯示ModelViewerEmbedded_Control,其透過 WebView2 託管一個 Edge (win32 互通:子 HWND +NativeControlHost,邊界同步於CoreWebView2Controller,HiDPI 透過ArrangeOverride)。它使用RenderScalingalready-installed WebView2 Evergreen 執行階段(無 Chromium 套件——nuget (no Chromium bundle — nugetMicrosoft.Web.WebView21.0.2592.51,約幾個 MB;NOT 那個會增加約 100MB 的笨重 CEF)。該面板啟動相同的 http 伺服器(ModelViewerLauncher.EnsureServerAndGetUrl,連接埠 8767,cache-busted)並將 WebView 導航至該伺服器;「重新載入」+「在瀏覽器中開啟」按鈕(備用方案)。Program.cs/AppBuilder 未受影響。建置 0 錯誤。 在移植到主線之前,已於隔離的工作樹分支中驗證(評定:編譯成功 + 0 個新警告)。第一階段(瀏覽器,v2.18.0)仍保留作為備用方案。同時進行的所有者決定: 圖庫以 乾淨的 REST 姿勢(動畫 opt-in)開啟——我們停止了離線動畫 whack-a-mole;真正的動畫 = 後續的動態捕捉(已排入佇列)。文件FFX_MODELVIEWER_EDITOR_2026-06-06.md。 \
v2.18.1
v2.19.1BETA
Seymour
MAGIC VIEWER EMBEDDED 在編輯器中(無瀏覽器):重複使用 v2.19.0 WebView2
- 直接回答擁有者(「這個想法是在編輯器內ALWAYS;開啟瀏覽器很蠢」):「Magic Viewer (Web)」 不再開啟外部瀏覽器——導航現在會
SetModuleMagicViewerEmbedded_Control,一個位於視窗內的 WebView2 面板。它重複使用了 SHAREDWebView2Host,即模型檢視器在 v2.19.0 中所使用的(一個嵌入基礎設施同時供兩個檢視器使用,無重複)。新增MagicViewerEmbedded_Control/DataModel+MagicViewerLauncher.EnsureServerAndGetUrl(啟動本地 HTTP 伺服器 8766 + cache-bust,並將 WebView 導航至該伺服器);重新載入 + 在瀏覽器中開啟(備用)按鈕。協調(同一分支上的兩個聊天記錄): I 等待另一個聊天記錄提交WebView2Host(v2.19.0),以便 I 能乾淨地依賴它——沒有中斷的樹狀結構;他們工作線的 code-audit 發現位於HANDOFF_CODE_AUDIT_HD_MODELS_2026-06-06.md。建置 0 錯誤,編輯器重新啟動且無崩潰。
v2.19.0
v2.19.2BETA
Seymour
嵌入修正:WebView2 FILLS 面板與工作線調整大小(適用於 BOTH 檢視器)
- 在螢幕上,嵌入的 WebView2 僅在角落渲染(在 hiDPI 顯示器上約 67%),帶有黑色邊距,且未跟隨編輯器大小。原因:
SyncControllerBounds乘以Bounds × RenderScaling,而 Avalonia ALSO 調整主機視窗大小 → DPI double-counting(內容約為 1/縮放比例)。在共用的WebView2Host中修正(因此同時修正了 Model Viewer v2.19.0 AND Magic Viewer v2.19.1):從 WebView 父層用戶端矩形(REAL+GetParent,無縮放計算)調整GetClientRect的大小,並在每次調整大小時 re-sync(EffectiveViewportChanged加上一個在ArrangeOverride延遲發送的DispatcherPriority.Background,以便在 Avalonia 重新定位原生主機後執行)。建置 0 錯誤。On-screen 驗證 = 所有者目視
v2.19.1