' ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
SUB SL_DISPLAY
() ' SL_DISPLAY 'ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
' declare global variables
SHARED SL_layer
() AS SL_LAYERS
' master layer array SHARED SL_global
AS SL_GLOBAL
' common globals array
' declare local variables
DIM merge
AS LONG ' software image to merge all layers onto DIM hardware
AS LONG ' hardware image of merged layers to place on working screen
SL_update_auto_sprites -1 ' (SL_SOFTWARE) update all software automatic sprites
odest
= _DEST ' save original destination _DEST SL_layer
(0).image
' working screen is destination merge
= _NEWIMAGE(SL_global.swidth
, SL_global.sheight
, 32) ' create screen to merge layers layer
= UBOUND(SL_layer
) ' reset layer counter
DO ' cycle through layers backwards (high to low) IF SL_layer
(layer
).visible
THEN ' is this layer visible? _PUTIMAGE , SL_layer
(layer
).image
, merge
' merge this layer layer = layer - 1 ' decrement layer counter
LOOP UNTIL layer
= 0 ' leave when all layers merged
hardware
= _COPYIMAGE(merge
, 33) ' create hardware image of merged layers _PUTIMAGE , hardware
' place hardware image on working screen _FREEIMAGE merge
' merged software image no longer needed _FREEIMAGE hardware
' merged hardware image no longer needed SL_update_auto_sprites 0 ' (SL_HARDWARE) update all hardware automatic sprites
_DEST odest
' restore original destination _DISPLAY ' update display screen with changes