Skip to content

SCREENSYNC


将显示更新与硬件同步

语法

` 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

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系