Skip to content

AetherScreens v1.4.1

Choose a tag to compare

@bcblr1993 bcblr1993 released this 07 Nov 03:57
· 14 commits to master since this release

⚡️ AetherScreens v1.4.1 (Build 2026110701)

零拷贝脏区域帧缓冲渲染优化、Windows RDP 原生光标图像支持、音频低延迟防溢出与 TCP_NODELAY 网络加速。

1. 帧缓冲与 Metal 渲染管线性能优化

  • CVPixelBuffer 脏区域直传:移除 RDP 软件合成帧每次更新时的全屏 CIContext.render 与 8–33 MB 临时 Data 分配,改为直接锁定 CVPixelBuffer 基址并仅拷贝 regionRects 脏矩形区域。
  • Metal 硬件加速与内存快径:在 macOS 与 iOS 上开启 MTKView.framebufferOnly = true 启用 GPU 无损帧缓冲压缩;在 Framebuffer、MetalScreenRenderer、TightPixels、TightPalette、FrameDecodePipeline 与 RDPGFXSurfaceCompositor 中引入整宽单次 memcpy 与 UInt32 指针级像素操作。

2. Windows RDP 原生光标、低延迟音频与网络加速

  • Windows RDP 原生硬件光标:解析 RDPRemotePointerUpdate 的 32 位 Alpha 与 24 位 AND/XOR 掩码位图(含文本 I-Beam 反色光标、调整大小箭头、手型及隐藏光标),直接映射为 macOS / iPadOS 原生光标。
  • 音频队列代数校验与设备切换恢复:在 RDPAudioPlayer 中引入 generation 代数校验,防止 reset() 后异步回调冲抵 queuedFrameCount 导致队列无限膨胀;将最大排队延迟收紧至 350ms 并监听 AVAudioEngineConfigurationChange 自动恢复耳机/AirPods 路由切换。
  • RDP TCP_NODELAY / Keepalive 与动态分辨率:为 RDP 套接字启用 TCP_NODELAY 与 SO_KEEPALIVE(15s/5s/3次),消除 Nagle 算法对高频键鼠指令与帧确认包的排队延迟;支持在 DisplayControl 通道就绪前缓存窗口分辨率并在超出服务端 maximumMonitorArea 时等比缩放。

3. 键鼠输入、日志性能与多语言补全

  • 窗口焦点与键码补全:macOS 会话窗口失焦或应用切换后台时自动释放所有粘滞修饰键与工具栏长按键;补全 Home、End、PageUp、PageDown 及小键盘 Enter 键码映射。
  • 日志格式化缓存与多语言补全:缓存 AppLogger.LogEntry 的静态加锁 DateFormatter;补全中英文 Localizable.strings 缺失词条并清理重复键值。

4. 平台与验证

  • 适用于 Apple 芯片 Mac(macOS 14+),App 与 DMG 均通过 Apple 公证,Sparkle 升级包使用 Ed25519 签名。
  • 全量测试 876 项通过、0 失败(30 项需真实主机的 live 测试跳过)。

SHA-256:

18beb853c6245b3ff980395a0ae4989da729420a75ba2b11e3d11bfb7c82dcf3  AetherScreens-macOS-AppleSilicon-v1.4.1.zip
a086ee6a147e1a5fdb0fe55296e4e57d2d935dc662d097c288371605938f1710  AetherScreens-macOS-AppleSilicon-v1.4.1.dmg