ScreenSync

Synchronizes display updates with hardware

Syntax
	KeyPgDeclareDeclare KeyPgFunctionFunction ScreenSync ( ) KeyPgAsAs KeyPgLongLong

Usage
	result = ScreenSync

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

Description
	This GfxLib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 (KeyPgWait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 KeyPgSleepSleep).

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

	The use of the QB-compatible form KeyPgWait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 CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Screensync.

Differences from QB
	* New to FreeBASIC. 
	* QBasic used KeyPgWaitWait &H3DA, 8 for this purpose.

See also
	* KeyPgWaitWait

