Help Center
Help CenterFreeBASIC

ScreenSyncfunction

Synchronizes display updates with hardware

Screen Functionsfunctiondocumented

Syntax

Declare Function ScreenSync ( ) As Long

Return value


Zero if successful, or non-zero if a graphics mode was not previously set.

Description


This GfxLib statement stops the execution of the program until the graphics card signals it has ended tracing a frame and is going to start the new one.

If the program uses this small interval of time between frames to redraw the image, the flickering is greatly reduced. In that use, ScreenSync is a reminiscence of QB where there was only that equivalent method (Wait &H3DA, 8) to improve the flickering. It is an empirical method because it only allows to synchronize the beginning of the drawing with the fixed dead time between two frames. To be used occasionally to avoid flickering when only very short time of drawing.

Except the purpose to reduce the flickering, ScreenSync can be also used simply as a method of synchronization of graphic drawing with the screen frame tracing (similarly to statement Sleep).

The error code returned by ScreenSync can be checked using Err in the next line. The function version of ScreenSync returns directly the error code as a 32 bit Long.

The use of the QB-compatible form Wait &H3DA, 8 is deprecated.

Remarks

Usage


result = ScreenSync

Dialect Differences


  • Not available in the -lang qb dialect unless referenced with the alias __Screensync.

Differences from QB


  • New to FreeBASIC.
  • QBasic used Wait &H3DA, 8 for this purpose.

See also


Example


'main loop

Do

  

  ' do user input

  ' calculate_a_frame

   

  ScreenSync

  

  ' draw_ a_ frame  

  

Loop Until Inkey <> ""



Reference

  • Documented in KeyPgScreensync.html