如何解决仅用ncurses渲染更改的字符?
我想知道,用ncurses尽可能高效地呈现更新的正确方法是什么? 目前,我正在按以下顺序进行渲染:
- 致电
erase()
清除所有内容 - 使用
printw()
将我的框架/动画/文本写入终端 - 致电
napms(20)
睡眠几毫秒 - 调用
refresh()
将框架渲染/显示到屏幕上。
这显然不是很有效-因为我一直在重新渲染所有内容。 尤其是在屏幕上写入大量内容时,一些闪烁/卡顿现象是显而易见的。
所以,我想只渲染从前一帧到当前帧的更改会容易得多。我的程序中已经有逻辑可以知道哪些字符已更改。 但是,我确实很难只重新渲染实际更改的字符。
我查看了move()
,mvdelch()
,但是由于某种原因,我无法设法用新坐标替换某个坐标处的字符。相反,我总是在删除字符时“插入”它们,然后在该坐标处使用printw()
吗?
因此,我的问题是:
- 在调用刷新之前是否只替换从一帧更改为下一帧的字符会改善性能?
- 如何用新坐标正确替换特定坐标处的字符?
边注:我正在渲染Unicode字符(使用ncursesw而不是ncurses链接)。 但是我不认为这是问题所在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。