检测 WPF/Direct3D 表面中的脏矩形?
Detect dirty rectangles in WPF/Direct3D surfaces?
我正在试验远程屏幕机制,我正在将更新的屏幕截图推送到客户端(浏览器)。我已成功实现 Win32 挂钩,将更新的矩形发布到管理器(嗅探 WM_PAINT 和相关消息)。
但是,WPF 应用程序使用 Direct3D 表面,因此侦听 windows 消息没有多大帮助。
有没有办法拦截这些表面,弄脏 rectangles/regions(例如,当重绘控件或其他组件时)?
似乎没有办法做到这一点。
我在这种情况下的解决方案是频繁执行 BitBlt(),并分析当前和先前像素缓冲区之间的差异。然后我将屏幕分成固定 widths/heights 的单元格,并跟踪每个单元格的变化。
我正在试验远程屏幕机制,我正在将更新的屏幕截图推送到客户端(浏览器)。我已成功实现 Win32 挂钩,将更新的矩形发布到管理器(嗅探 WM_PAINT 和相关消息)。
但是,WPF 应用程序使用 Direct3D 表面,因此侦听 windows 消息没有多大帮助。
有没有办法拦截这些表面,弄脏 rectangles/regions(例如,当重绘控件或其他组件时)?
似乎没有办法做到这一点。
我在这种情况下的解决方案是频繁执行 BitBlt(),并分析当前和先前像素缓冲区之间的差异。然后我将屏幕分成固定 widths/heights 的单元格,并跟踪每个单元格的变化。