Atualização 2.19
06/06/2026
v2.19.0BETA
Seymour
MODEL VIEWER EMBUTIDO no editor (sem navegador): WebView2 nativo num painel
- Fase 2 da reviravolta: o mesmo viewer three.js dos 816 modelos agora roda DENTRO da janela do editor, num painel — um novo botão "Model Viewer (Embedded) 🐉" no card Extras →
SetModulemostraModelViewerEmbedded_Control, que hospeda um Edge WebView2 viaNativeControlHost(interop win32: child HWND +CoreWebView2Controller, bounds sincronizados emArrangeOverride, HiDPI viaRenderScaling). Usa o runtime WebView2 Evergreen já instalado (sem bundle Chromium — nugetMicrosoft.Web.WebView21.0.2592.51, ~alguns MB; não o CEF pesado que adicionaria ~100MB). O painel inicia o mesmo servidor http (ModelViewerLauncher.EnsureServerAndGetUrl, porta 8767, com invalidação de cache) e navega o WebView para ele; botões "Recarregar" + "Abrir no navegador" (alternativa).Program.cs/AppBuilder intocado. Compilação com 0 erros. Provado num teste isolado no worktree (avaliado: compila + 0 avisos novos) antes de portar para main. Fase 1 (navegador, v2.18.0) permanece como alternativa. Decisão do dono ao lado: a galeria abre na pose REST limpa (animação opt-in) — paramos a animação offline por tentativa e erro; animação real = mocap depois (na fila). DocumentoFFX_MODELVIEWER_EDITOR_2026-06-06.md
v2.18.1
v2.19.1BETA
Seymour
MAGIC VIEWER EMBEDDED no editor (sem browser): reutiliza o v2.19.0 WebView2
- Resposta direta ao dono ("a ideia era ALWAYS dentro do editor; abrir browser é burrice"): "Magic Viewer (Web)" parou de abrir browser externo — a nav agora
SetModuleoMagicViewerEmbedded_Control, um painel WebView2 dentro da janela. Ele reutiliza o SHAREDWebView2Hostque o Model Viewer aterrissou em v2.19.0 (uma infra de embedding para os dois viewers, sem duplicação). NovoMagicViewerEmbedded_Control/DataModel+MagicViewerLauncher.EnsureServerAndGetUrl(inicia o servidor http local 8766 + cache-bust e navega o WebView para ele); botões Reload + Open em Browser (fallback). Coordenação (2 chats numa branch): I esperou o outro chat commitarWebView2Host(v2.19.0) para I poder depender limpo — sem árvore quebrada; os achados code-audit da lane deles estão emHANDOFF_CODE_AUDIT_HD_MODELS_2026-06-06.md. Build 0 erros, editor relança sem crash.
v2.19.0
v2.19.2BETA
Seymour
fix de embed: o WebView2 FILLS o painel e acompanha o resize (aplica aos viewers BOTH)
- Na tela, o WebView2 embutido renderizava só num canto (~67% num display hiDPI) com margens pretas, e não acompanhava o tamanho do editor. Causa:
SyncControllerBoundsmultiplicavaBounds × RenderScalingenquanto o Avalonia ALSO dimensiona a janela host → DPI double-counting (conteúdo a ~1/scale). Corrigido noWebView2Hostcompartilhado (então corrige Model Viewer v2.19.0 AND Magic Viewer v2.19.1 de uma vez): dimensiona o WebView do rect de cliente pai REAL (GetParent+GetClientRect, sem matemática de scale) + re-sync a cada resize (EffectiveViewportChanged+ umArrangeOverrideadiado pós-DispatcherPriority.Backgroundpara rodar depois que o Avalonia reposiciona o host nativo). Build 0 erros. Verificação On-screen = olho do dono
v2.19.1