1 : lineh ( color len x y imgbuf -- )
\r
4 : linev ( color len x y imgbuf -- )
\r
5 dup imgsize drop push
\r
10 var tmp1 var tmp2 var tmp3 var tmp4
\r
11 : box ( color x2 x1 y2 y1 imgbuf -- )
\r
14 over tmp1 ! ( y2 1 )
\r
17 over tmp3 ! ( x2 3 )
\r
20 dup tmp4 @ i i2 i3 lineh
\r
21 dup tmp4 @ 1+ i tmp1 @ i3 lineh
\r
22 dup tmp2 @ i i2 i3 linev
\r
23 tmp2 @ tmp3 @ i2 i3 linev
\r
24 pop pop 2drop pop drop ;
\r
25 rh tmp1 rh tmp2 rh tmp3 rh tmp4
\r
27 var flipxs var flipys var fliplb var flipib var flipsa var flipda
\r
28 : flipv ( imgbuf -- )
\r
29 dup push imgsize over dynal push ( sizex sizey R: imgbuf linebuf )
\r
30 flipys ! flipxs ! pop fliplb ! pop flipib !
\r
32 0 i flipib @ point flipsa !
\r
33 0 flipys @ i - 1- flipib @ point flipda !
\r
34 flipda @ fliplb @ dynp flipxs @ cmove
\r
35 flipsa @ flipda @ flipxs @ cmove
\r
36 fliplb @ dynp flipsa @ flipxs @ cmove
\r
38 rh flipxs rh flipys rh fliplb rh flipib rh flipsa rh flipda
\r
40 : imgcoltrans ( ImgBuf Color ToColor -- )
\r
42 dup dynp 8 + swap dyns 8 - do
\r
43 dup c@ i2 = if i3 over c! then
\r
45 loop drop pop pop 2drop ;
\r
47 var imgfillbuf var imgfilld var imgfillc
\r
48 : imgfill ( color x y imgbuf -- )
\r
49 dup imgfillbuf ! point dup c@ imgfillc ! FE swap c! ( color )
\r
53 imgfillbuf @ imgsize
\r
56 imgfillbuf @ imgsize drop 1- i imgfillbuf @ point
\r
59 dup 1- c@ imgfillc @ = if
\r
67 0 i imgfillbuf @ point
\r
70 dup 1+ c@ imgfillc @ = if
\r
79 imgfillbuf @ imgsize 1- swap
\r
81 i imgfillbuf @ dup imgsize swap push 1- swap point
\r
84 dup i2 - c@ imgfillc @ = if
\r
93 i2 0 imgfillbuf @ point
\r
96 dup i2 + c@ imgfillc @ = if
\r
104 imgfilld @ if imgfilld off else done then
\r
106 imgfillbuf @ FE rot imgcoltrans ;
\r
107 rh imgfillbuf rh imgfilld rh imgfillc
\r