SCREENSYNC
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgScreensync
- 最后更新: 2016-08-13
将显示更新与硬件同步
语法
` declare function Screensync ( ) as long
`
用法
` result = Screensync
`
返回值
成功时返回零,如果之前未设置图形模式则返回非零值。
说明
此 GfxLib 语句会暂停程序执行,直到显卡发出信号表示已完成当前帧的扫描并即将开始新的一帧。
如果程序利用帧间这段短暂的间隔时间重绘图像,可大幅减少画面闪烁。在这种用法中,Screensync 是 QB 时代的遗留方式——QB 中只有等效的 WAIT &H3DA, 8 来改善闪烁问题。这是一种经验性方法,因为它只能将绘图开始时刻与两帧之间固定的消隐死区同步。仅在绘制时间极短时偶尔使用,以避免闪烁。
除减少闪烁外,Screensync 也可单纯用作图形绘制与屏幕帧扫描同步的方法(类似于 Sleep 语句)。
Screensync 返回的错误码可在下一行用 Err 检查。函数版本的 Screensync 直接以 32 位 Long 形式返回错误码。
QB 兼容形式 WAIT &H3DA, 8 已被废弃。
示例
start GeSHi
'主循环
Do
' 处理用户输入
' 计算一帧
ScreenSync
' 绘制一帧
Loop Until Inkey <> ""end GeSHi
方言差异
- 在 -lang qb 方言中不可用,除非使用别名
__Screensync引用。
与 QB 的差异
- FreeBASIC 新增内容。
- QBasic 使用
WAIT &H3DA, 8实现此功能。
另请参阅
Wait
返回 目录