Just for reference, here is some code that exhibits the problem I'm talking about. It happens about every 10-15 seconds, lasts about 1 second, and is barely perceptible. Other things I've seen that are not written in Blitz do not seem to exhibit the problem.
This contains no framerate limiter or time delta and that might be the issue?
If nothing else, have a cheesy effect.
Global ob_list:TList = New TList
Type spacerect
Field x:Float, y:Float
Field vx:Float, vy:Float
Field sizex, sizey
Field colorr, colorg, colorb
Field transparency:Float
Function construct()
Local s:spacerect = New spacerect
s.x=Rand(640)
s.y =Rand(480)
s.sizex=Rand(40)+5
s.sizey=Rand(40)+5
s.colorr=50
s.colorb=100
s.colorg=0
s.transparency=Rnd()+.5
s.vx = 0
s.vy = RndDouble()*5
ListAddLast(ob_list,s)
EndFunction
Method draw()
SetBlend alphablend
SetColor(colorr, colorg, colorb)
SetAlpha transparency - .25
DrawRect x, y, sizex, sizey
SetAlpha transparency
DrawRect x+1, y+1, sizex-2, sizey-2
End Method
Method update()
y=y+vy
If y>700
y=Rand(480)
transparency = Rnd()+.5
EndIf
transparency=transparency -.01
End Method
End Type
Graphics 640,480
For Local i = 1 To 200
spacerect.construct()
Next
While MouseDown(1)=0
Cls
For foo:spacerect = EachIn ob_list
foo.update()
foo.draw()
Next
Flip
Wend