Testing further I see that the drawing commands are held in memory in the "current segment". The redraw erases them from the screen but they can still be preserved and redrawn with a flush and redraw.
So it seems redraw does not have an implicit discard. It matters little to LBB.
Code:nomainwin
WindowWidth = 600
WindowHeight = 400
UpperLeftX = (DisplayWidth-WindowWidth)/2
UpperLeftY = (DisplayHeight-WindowHeight)/2
button #1.b, "Draw Graphic", [nextdrawing], UL, 250, 340
graphicbox #1.gb, 50,25,500,300
open "Refreshed Graphic Example" for window_nf as #1
#1 "trapclose [quit]"
'put the pen down and set the font
'note cls has no impact on these settings
#1.gb "down ; font comic_sans 48"
'good practice to start with a clean sheet
#1.gb "cls"
'draw the background
#1.gb "fill pink ; backcolor red ; color red"
#1.gb "place 100 50 ; boxfilled 300 150"
#1.gb "place 300 150 ; circlefilled 100"
#1.gb "backcolor pink"
#1.gb "place 50 100 ;\1"
'now flush as the named segment "backgroundimage"
#1.gb "flush backgroundimage"
[loop]
scan
'redraw the background using its segment name
#1.gb "discard ; redraw backgroundimage"
'now paint the new foreground image
'notice that the foreground images do not use
'full screen fills.
#1.gb "backcolor green ; color green"
#1.gb "place 300 50 ; boxfilled 400 200"
#1.gb "place 300 200 ; circlefilled 100"
#1.gb "backcolor red"
#1.gb "place 180 120 ;\2"
#1.gb "redraw backgroundimage"
#1.gb "flush s"
#1.gb "redraw s"
[quit]
close #1
end