Aggiornamento 2.19
06/06/2026
v2.19.0BETA
Seymour
MODEL VIEWER INCORPORATO nell'editor (niente browser): WebView2 nativo in un pannello. (letterale tecnico: MODEL VIEWER EMBEDDED)
- Fase 2 del plot twist: lo STESSO viewer three.js degli 816 modelli ora gira (letterale tecnico: SAME)DENTRO la finestra dell'editor (letterale tecnico: INSIDE), in un pannello — un nuovo bottone "Model Viewer (Embedded) 🐉" nella card Extras →
SetModulemostraModelViewerEmbedded_Control, che ospita un Edge WebView2 viaNativeControlHost(interop win32: child HWND +CoreWebView2Controller, bounds sincronizzati inArrangeOverride, HiDPI viaRenderScaling). Usa il runtime WebView2 Evergreen già installato (letterale tecnico: already-installed) (nessun bundle Chromium — nugetMicrosoft.Web.WebView21.0.2592.51, ~pochi MB; NON (letterale tecnico: NOT) il pesante CEF che aggiungerebbe ~100MB). Il pannello avvia lo stesso http server (ModelViewerLauncher.EnsureServerAndGetUrl, porta 8767, cache-busted) e naviga il WebView su di esso; bottoni "Reload" + "Open in Browser" (fallback).Program.cs/AppBuilder intoccati. Build 0 errori. Provato in uno spike su worktree isolato (giudizio: compila + 0 nuovi warning) prima di portarlo su main. La Fase 1 (browser, v2.18.0) resta come fallback. Decisione del proprietario al contempo: la gallery si apre nella clean REST pose (animazione opt-in) — abbiamo smesso il whack-a-mole dell'animazione offline; animazione reale = mocap più tardi (in coda). DocFFX_MODELVIEWER_EDITOR_2026-06-06.md
v2.18.1
v2.19.1BETA
Seymour
MAGIC VIEWER INCORPORATO nell'editor (niente browser): riusa il WebView2 del v2.19.0. (letterale tecnico: MAGIC VIEWER EMBEDDED)
- Risposta diretta al proprietario ("l'idea era SEMPRE dentro l'editor; aprire un browser è stupido"): (letterale tecnico: ALWAYS)"Magic Viewer (Web)" ha smesso di aprire un browser esterno — la nav ora
SetModuleaMagicViewerEmbedded_Control, un pannello WebView2 dentro la finestra. Riutilizza la (letterale tecnico: SHARED)WebView2HostCONDIVISA che il Model Viewer ha portato in v2.19.0 (un'infra di embedding per entrambi i viewer, nessuna duplicazione). NuovoMagicViewerEmbedded_Control/DataModel+MagicViewerLauncher.EnsureServerAndGetUrl(avvia il server HTTP locale 8766 + cache-bust e naviga il WebView su di esso); bottoni Reload + Apri nel browser (fallback). Coordinazione (2 chat su un ramo): ho aspettato che l'altra chat committasseWebView2Host(v2.19.0) per poterne dipendere in modo pulito — nessun albero rotto; i finding del code-audit della loro lane sono inHANDOFF_CODE_AUDIT_HD_MODELS_2026-06-06.md. Build 0 errori, l'editor si riavvia senza crash.
v2.19.0
v2.19.2BETA
Seymour
fix embed: il WebView2 RIEMPIE il pannello e segue il resize (vale per ENTRAMBI i viewer). (letterale tecnico: FILLS) (letterale tecnico: BOTH)
- On screen il WebView2 incorporato renderizzava solo in un angolo (~67% su un display hiDPI) con margini neri, e non seguiva la dimensione dell'editor. Causa:
SyncControllerBoundsmoltiplicavaBounds × RenderScalingmentre Avalonia dimensiona ANCHE la host window → (letterale tecnico: ALSO)doppio conteggio DPI (letterale tecnico: double-counting) (contenuto a ~1/scale). Fixato nellaWebView2Hostcondivisa (quindi corregge Model Viewer v2.19.0 E Magic Viewer v2.19.1 in un colpo (letterale tecnico: AND)): dimensionare il WebView dal client rect REALE del parent (GetParent+GetClientRect, senza math di scale) + ri-sync a ogni resize (letterale tecnico: re-sync) (EffectiveViewportChanged+ unArrangeOverrideposticipato aDispatcherPriority.Backgroundcosì gira dopo che Avalonia riposiziona l'host nativo). Build 0 errori. Verifica on-screen = occhio del proprietario
v2.19.1