TermiNexus
d840c7546f
fix(vpui): 窗口改双缓冲,消除合成器读到半成品帧造成的闪烁
根因:Tk.redraw 每帧先 _fill_rect 把整窗填成背景色、再逐控件重画,而这块缓冲就是 explorer 合成时逐行 blit 的共享 arena(render_window_rows 直接从 arena 读)。于是整窗纯背景色、控件还没画的那段窗口期一旦被合成器采到就是一次闪烁;鼠标移动让 explorer 重画窗口所在行时同样会撞上。改法:Tk 增加进程本地后备缓冲(懒分配、窗口变大时重新分配并 free 旧的),整帧画完后一次性 memcpy 进 arena 再 flush,合成器任何时刻读到的都是完整帧。代价是每帧一次全窗拷贝(零拷贝通路只在合成那一段保留)。分配失败不静默:打日志后退回直写 arena。
2026-10-16 21:27:14 +08:00
..
2026-07-30 16:34:26 +08:00
2026-10-16 19:08:18 +08:00
2026-10-16 20:20:36 +08:00
2026-10-16 18:32:33 +08:00
2026-10-16 19:33:46 +08:00
2026-10-16 19:11:44 +08:00
2026-10-16 19:17:39 +08:00
2026-10-16 18:40:14 +08:00
2026-10-16 19:33:46 +08:00
2026-10-16 21:27:14 +08:00
2026-10-16 20:51:07 +08:00