Checklist

7 of 12 complete
  • Replace separate Skia text measurement/character-width paths with shared PRK.Fonts shaped layout for wrap, drawing, caret, links and selection; preserve UTF-16 identities, graphemes/direction, styles/fallback and virtual-chat anchoring/offscreen copy.
  • Deliver the isolated HarfBuzz/FreeType/Vulkan text playground; verify Linux Release and Native AOT execution, native shaping/sanitizer checks, real-GPU size/scale coverage and resize/idle cache reuse. Keep full renderer migration and Windows verification separate.
  • Establish latest-develop integration ownership/coverage map and real-client baseline workloads, reusing current GuiView/Lua/combat/virtual-chat behavior and identifying renderer/text/asset/presentation gaps before changing the shipping route.
  • Implement the GuiView-to-paint-list adapter and a representative real-client/Lua retained-window vertical slice; preserve widget/input/action contracts, saved state and combat locks, then cover every reachable widget without silent omissions or full-window CPU fallback.
  • Build and validate the text playground on the Windows VM/GTX 1070 using real interactive Vulkan smoke, native shaping tests, GPU coverage/caching checks and visual captures; exercise Native AOT if the installed toolchain supports it. Preserve existing VM projects and do not run a feature review.
  • Make licensed deterministic fonts and the native bridge/dependency/notices package available through normal client development, CI and release/AOT builds; define family/style/fallback and supported scale/DPI limits without relying on the playground or system Arial.
  • Integrate GUI prepare/uploads/layer passes/root drawing/commit-discard into RendererVulkan's actual frame slots and retirement lifecycle; preserve scene-AA/output ordering, SDR/HDR behavior, true dimming exceptions, screen cover and cursor ordering.
  • Extract PRK.Fonts and PRK.Fonts.Vulkan with explicit ownership, structured errors, immutable shaped/coverage data, bounded caches and caller-owned Vulkan/frame-slot contracts; make the playground consume them and preserve Linux/Windows JIT/AOT visual and synchronization checks.
  • Replace the real client's deferred-resize/UI-stretch policy from measured presentation/world-target behavior; verify continuous resize, native text, scale/DPI, minimize/restore and display transitions with consistent input/paint metrics and bounded safe resources.
  • Implement ordered GUI paint core and Vulkan backend for rounded fills/borders, immutable images/nine-slice, nested rectangular clips and interleaved native text; validate a real interactive playground with pixel/order/filtering checks, resize/idle reuse and frame-slot/upload lifetime checks. Keep current game UI untouched until its adapter/compositing migration.
  • Complete client/graphics/Lua/virtual-chat/native/AOT/actual-GUI Vulkan and installed-asset validation plus controlled baseline/candidate measurements; switch the client default only after coverage passes, then remove the old Skia UI rasterization/staging path and temporary rollout selector.
  • Implement real isolated GPU opacity groups with cropped physical-pixel targets per frame slot, nested child-before-parent passes and native-size text compositing; verify alpha overlap, nested/clipped/zero/opaque groups, budgets, upload discard, resize/reuse and teardown locally in Release/AOT. Keep VM testing paused.
Project
engines
Kind
Feature
Task ID
tsk_nxnkyedc6c
Updated