检测WPF / Direct3D表面中的脏矩形?

时间:2016-03-04 09:09:08

标签: c++ wpf hook screenshot direct3d

我正在尝试使用远程屏幕机制,我正在向客户端(浏览器)推送更新的屏幕上限。我已经成功实现了Win32钩子,它将更新的矩形发布到管理器(嗅探WM_PAINT和相关消息)。

但是,WPF应用程序使用Direct3D表面,因此监听Windows消息并没有多大帮助。

有没有办法拦截这些表面,并获得脏的矩形/区域(例如,当重绘控件或其他组件时)?

1 个答案:

答案 0 :(得分:0)

似乎没有办法实现这一目标。

我在这种情况下的解决方案是频繁执行BitBlt(),并分析当前和先前像素缓冲区之间的差异。然后,我将屏幕划分为具有固定宽度/高度的单元格,并跟踪每个单元格的变化。