I like you program.
This mod seems to speed it up a bit.
I have changed the Proc_RenderMandel() so it is Locking the buffer and using writepixelfast. It also doesnt then need to convert the colors.
Replace Proc_RenderMandel() with this code
This mod seems to speed it up a bit.
I have changed the Proc_RenderMandel() so it is Locking the buffer and using writepixelfast. It also doesnt then need to convert the colors.
Replace Proc_RenderMandel() with this code
Function Proc_RenderMandel() For i =0 To PalSize-1 Read Colour Col(I)=Colour Next xscale#=X_Side#/Float(xmax) yscale#=Y_Side#/Float(ymax) LockBuffer ImageBuffer (RenderView) For y=0 To ymax Step Precision For x=0 To xmax Step Precision cx#=Float(x)*xscale#+Left_Side# cy#=Float(y)*yscale#+Top_Side# zx#=0 zy#=0 ColorCounter=0 CurrentColor=0 While (zx#*zx#+zy#*zy#<4 And colorcounter+ScaleColor<MaxColor) tempx#=zx#*zx#-zy#*zy#+cx# zy#=2*zx#*zy#+cy# zx#=tempx# colorcounter=colorcounter+1 Wend CurrentColor=colorcounter+ScaleColor Mod MaxColor ; SetBuffer ImageBuffer (RenderView) ; ConvertARGB(Col(CurrentColor)) ;Plot x,y writepixelfast x,y,col(CurrentColor),ImageBuffer (RenderView) ; SetBuffer BackBuffer() ; ----------------------------- ; Gestion de 'l'interface ; ----------------------------- If BCF_TestButton(StopMandel) Then BCF_ChangeGaugeValue(Gauge01,0) unLockBuffer ImageBuffer (RenderView) Return EndIf If BCF_TestButton(ZoomMandel) Then BCF_ChangeGaugeValue(Gauge01,0) unLockBuffer ImageBuffer (RenderView) Proc_ZoomMandel EndIf ; --------------------------------- ; On quitte le programme ; --------------------------------- If BCF_TestButton(QuitMandel) Or KeyHit(1) Then unLockBuffer ImageBuffer (RenderView) ClearWorld End EndIf Next unLockBuffer ImageBuffer (RenderView) ; ----------------------------------- ; Gauge et affichage image ; ----------------------------------- BCF_ChangeGaugeValue(Gauge01,y) ; RenderWorld cls DrawImage RenderView,0,0 ; ------------------------- ; Gestion de la BCF ; ------------------------- BCF_RenderBCF() Flip Next BCF_ChangeGaugeValue(Gauge01,0) End Function