Same code, different background..
#Include Once "tinyptc.bi"
If( ptc_open( "TEXTURED BLOB LAVA LAMP BY SHOCKWAVE ^ DBF 18 LINES.", 640, 480 ) = 1 ) Then dim shared buffer(640*480) as integer, buffer2(640*480) as integer, colours (320) as integer, strt as double,intr as double,buffer3(640*480) as integer, fact as double
for a=-300 to 640*480
if a<0 then colours(a+300)=rgb( (a+300) *.15 ,(a+300) *.25 ,(a+300) *.35 ) else if a>=0 then buffer2(a) = rgb(0,0,((int(a/640)) xor (int(a mod 640))))
if a>=0 then buffer3(a) = rgb(0,((int(a/640)) xor (int(a mod 640))),0) next
do
for y=0 to 479
leng=300+(199*cos((y-timer*214)/63))*sin((y+(timer * 263))/(150+150*sin(timer*.00002)))
intr = (640/leng)
strt = 0
fact=0.001
if intr <=0 then intr=1
for x=0 to 640
if x>=320- (leng/2) and x<= 320 + (leng/2) then buffer((y*640)+x) = ((buffer2((y*640)+int(strt)))*fact) else buffer((y*640)+x)=colours(y shr 2)
if x>=320- (leng/2) and x<= 320 + (leng/2) then strt=strt+intr
if x>=320- (leng/2) and x<= 320 + (leng/2) then if x<320 then fact=fact+.002 else if x>320 then fact=fact-.002 end if next next
ptc_update@buffer(0) loop until inkey$<>""