问题描述
我目前正在尝试修复 "screendump" 调整中的错误。问题是,当通过 VNC 连接时,它通常运行良好。但是,在某些情况下,它不会更新 VNC 中的图像,尽管物理屏幕已更改。这主要发生在键盘显示在下方时。因此,它在物理屏幕上可见,但不会在 VNC 中更新。有时有效,有时无效。
我已检查此 location 处的代码如下:
uint32_t newSeed = IOSurfaceGetSeed(screenSurface);
if(oldSeed != newSeed && rfbIsActive(screen)) {
oldSeed = newSeed;
[q addOperationWithBlock: ^{
IOSurfaceAcceleratorTransferSurface(accelerator,screenSurface,static_buffer,NULL,NULL);
rfbMarkRectAsModified(screen,width,height);
}];
}
似乎 screenSurface
的内部缓冲区没有更新,因为从 IOSurfaceGetSeed
检索到的种子值在描述的情况下没有改变。即使删除了种子检查,它也不起作用。
任何想法如何强制更新缓冲区?或者其他方式来阅读屏幕?
系统:iOS 13,jb
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)