ScreenSync

Synchronizes display updates with hardware

Syntax
   Declare Function ScreenSync ( ) As Long

Usage
   result = ScreenSync

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.

Example
   'main loop
   Do
     
     ' do user input
     ' calculate_a_frame
      
     ScreenSync
     
     ' draw_ a_ frame  
     
   Loop Until Inkey <> ""

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
   * Wait

