forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   FillBuffer(buff,width,height,c=0) (http://forum.boolean.name/showthread.php?t=2611)

HolyDel 05.02.2007 01:28

FillBuffer(buff,width,height,c=0)
 
Код:

Function FillBuffer(buff,width,height,c=0)
        LockBuffer buff
        WritePixelFast 0,0,c,buff
        WritePixelFast 1,0,c,buff
        WritePixelFast 0,1,c,buff
        WritePixelFast 1,1,c,buff
        state=0
        x=2
        y=2
        While x<width
        While y<height
        If state=0
                CopyRect 0,0,x,y,x,0,buff,buff
                x=x*2
                state=1
        Else
                CopyRect 0,0,x,y,0,y,buff,buff
                y=y*2
                state=0
        EndIf
        Wend
        Wend
        UnlockBuffer buff
        Return buff
End Function

быстрое заполнение поверхности одним цветом, у меня 512 на 512 заполнило за 72 мс, в то время как заполнение путем перебора всех пикселей и writepixelfast работало 3913 мсек. на больших поверхностях выигрыш должен быть еще существенние.
p.s. DebugMode включон.


Часовой пояс GMT +4, время: 10:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot