ok figured it out :p
;VERY cool magnifying glass demo. Graphics 640,480,0,2 HidePointer() img = CreateImage(640,480) SetBuffer ImageBuffer(img) SeedRnd(22432) For x = 1 To 9000 Color Rnd(255),Rnd(255),Rnd(255) Rect Rnd(640),Rnd(480),Rnd(20),Rnd(20),1 Next Global dimg = CreateImage(150,150) SetBuffer BackBuffer() While Not KeyDown(1) Cls DrawImage img,(-(MouseX())+320)/3,(-(MouseY()/1)+240)/3 drop(MouseX(),MouseY(),50,1) Flip False Wend End Function drop(x,y,r,s# = 1) LockBuffer ImageBuffer(dimg) LockBuffer BackBuffer() For x1 = -r To r For y1 = -r To r dist# = Sqr(x1*x1 + y1*y1) If dist# <= r Then WritePixelFast1 x1+r,y1+r,ReadPixelFast1(x1*(dist#/r*s#)+x,y1*(dist#/r*s#)+y),ImageBuffer(dimg) EndIf Next Next UnlockBuffer BackBuffer() UnlockBuffer ImageBuffer(dimg) Color 0,0,0 Oval x-r+1,y-r+1,2*r-1,2*r-1,1 DrawImage dimg,x-r,y-r SetBuffer ImageBuffer(dimg) Color 0,0,0 Rect 0,0,151,151,1 SetBuffer BackBuffer() End Function Function writepixelfast1(x,y,col,buffer) If x > -1 And y > -1 Then If x < GraphicsWidth()-1 And y < GraphicsHeight()-1 Then WritePixelFast x,y,col,buffer EndIf EndIf End Function Function readpixelfast1(x,y) If x > 0 And y > 0 Then If x < GraphicsWidth() And y < GraphicsHeight() Then Return(ReadPixelFast(x,y)) EndIf EndIf Return 0 End Function