Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
rendertarget_forceupdate(3)	 Arcan Lua API	   rendertarget_forceupdate(3)

NAME
       rendertarget_forceupdate	 - Manually perform an out-of-loop update of a
       rendertarget

SYNOPSIS
       nil
       rendertarget_forceupdate( vid:rendertarget )
       rendertarget_forceupdate( vid:rendertarget, bool:force_dirty=true )
       rendertarget_forceupdate( vid:rendertarget, number:refresh )
       rendertarget_forceupdate(   vid:rendertarget,   number:refresh,	  num-
       ber:readback )

DESCRIPTION
       By  default,  rendertargets update synchronously	with the regular video
       refresh/redraw that is performed	as part	of the active  synchronization
       strategy	combined with the refreshrate hinted during creation.

       This function covers two	use-cases.

       The  first  use case is to force	an out-of-loop update of the specified
       target in 'manual' update mode (rate=0).	By default  this  will	always
       trigger a render	pass. If the second argument is	set to false, then the
       update will only	be forced if the pipeline is actually dirty.

       The second use case is to change	the refresh and	readback rates for the
       specified  rendertarget.	 This can be used as an	optimization to	tempo-
       rarily disable rendertargets without going through the process  of  re-
       building	and migrating between rendertargets.

       Any  pending  counters/timers for frame or tick/based automatic updates
       will be reset, and the update includes synchronizing with  readback  in
       the case	of calctargets and recordtargets.

NOTES
       1      Trying to	call this function on a	VID  that references an	object
	      that is not flagged as a rendertarget is a terminal state	 tran-
	      sition.

       2      If  a  newrate  is set, the rendertarget will not	be updated di-
	      rectly. If that behaviour	is desired, call  the  function	 again
	      without the newrate argument.

       3

EXAMPLE
       function	rendertarget_forceupdate0()
	     local dst = alloc_surface(320, 200);
	     local a = color_surface(64, 64, 0,	255, 0);
	     show_image(a);
	     rotate_image(a, 45);
	     define_rendertarget(dst, {a});
	     rendertarget_forceupdate(dst);
	     save_screenshot("test.png", FORMAT_PNG, dst);
	     delete_image(dst);
       end

MISUSE
       function	rendertarget_forceupdate0()
	     local a = fill_surface(32,	32, 255, 0, 0, 0);
	     rendertarget_forceupdate(a);
       end

SEE ALSO:
       define_rendertarget(3) define_calctarget(3) define_recordtarget(3)

targetcontrol			  April	2022	   rendertarget_forceupdate(3)

NAME | SYNOPSIS | DESCRIPTION | NOTES | EXAMPLE | MISUSE | SEE ALSO:

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=rendertarget_forceupdate&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help