DFMirage Mirror Driver获取变化区域失败

ahjoe 2019-06-28 02:48:05
明明屏幕有变化,可是获取的counter没有变,

// 叠加变化区域
TotalRect.Left := 0;
TotalRect.Top := 0;
TotalRect.Right := 0;
TotalRect.Bottom := 0;
NoRect := True;
if not AVideoDRV.MapSharedbuffers(True) then
begin
Result := False;
Exit;
end;
NewIndex := AVideoDRV.bufdata.buffer.counter;
while ChangeIndex <> NewIndex do
begin
UnionRect(TotalRect, TotalRect, AVideoDRV.bufdata.buffer.pointrect[ChangeIndex].rect);
NoRect := False;
ChangeIndex := (ChangeIndex + 1) mod MAXCHANGES_BUF;
end;
if NoRect then
begin
AVideoDRV.UnMapSharedbuffers();
Exit;
end;
...全文
324 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahjoe 2019-07-01
  • 打赏
  • 举报
回复
我试出来了,因为我流程是每次截图前映射缓冲区,截图后就关闭了映射,这样做下次再映射截图不会和前面图像对比。不要每次截图都做开启和关闭缓冲区就可以正确检测变化区域了。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧