Mercurial > hg > forks > multipaint-js
comparison draw_smart.pde @ 233:1d9f9c3d8ab1
Fixes to multicolor/pixelw==2 flood fill.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 06 Sep 2018 13:25:15 +0300 |
parents | 1c9deae71fb1 |
children | a3f79ce74471 |
comparison
equal
deleted
inserted
replaced
232:ea6eb6541607 | 233:1d9f9c3d8ab1 |
---|---|
158 } | 158 } |
159 | 159 |
160 | 160 |
161 void floodfill_mc(int xx, int yy, int mbut) | 161 void floodfill_mc(int xx, int yy, int mbut) |
162 { | 162 { |
163 int x, y, ax, valid, okay, par, npar, zad; | 163 int x, y, ax, valid, okay, par, npar; |
164 par = 0; | 164 par = 0; |
165 | 165 |
166 if (g_pixelw == 2) | 166 if (g_pixelw == 2) |
167 xx = chop2(xx); | 167 xx = chop2(xx); |
168 | 168 |
184 { | 184 { |
185 valid = 0; | 185 valid = 0; |
186 for (y = 0; y < Y; y++) | 186 for (y = 0; y < Y; y++) |
187 for (x = 0; x < X; x += g_pixelw) | 187 for (x = 0; x < X; x += g_pixelw) |
188 { | 188 { |
189 zad = 1024 + x + y * X; | 189 int zad = 1024 + x + y * X; |
190 ax = int(g_fillmap[zad]); | 190 ax = int(g_fillmap[zad]); |
191 if (ax >= 100 && ax <= 199) | 191 if (ax >= 100 && ax <= 199) |
192 { | 192 { |
193 valid = 1; | 193 valid = 1; |
194 if (y > 0 && floodfill_mc_plop(npar, x, y - 1)) | 194 if (y > 0 && floodfill_mc_plop(npar, x, y - 1)) |
195 valid = 1; | 195 valid = 1; |
196 | 196 |
197 if (x > g_pixelw && floodfill_mc_plop(npar, x - g_pixelw, y)) | 197 if (x >= g_pixelw && floodfill_mc_plop(npar, x - g_pixelw, y)) |
198 valid = 1; | 198 valid = 1; |
199 | 199 |
200 if (x < X - 1 - g_pixelw && floodfill_mc_plop(npar, x + g_pixelw, y)) | 200 if (x <= X - g_pixelw - g_pixelw && floodfill_mc_plop(npar, x + g_pixelw, y)) |
201 valid = 1; | 201 valid = 1; |
202 | 202 |
203 if (y < Y - 1 && floodfill_mc_plop(npar, x, y + 1)) | 203 if (y < Y - 1 && floodfill_mc_plop(npar, x, y + 1)) |
204 valid = 1; | 204 valid = 1; |
205 | 205 |
243 } | 243 } |
244 | 244 |
245 | 245 |
246 void floodfill_iq(int xx, int yy, int mbut) | 246 void floodfill_iq(int xx, int yy, int mbut) |
247 { | 247 { |
248 int x, y, ax, ay, valid, okay, par, npar, zad; | 248 int x, y, ax, ay, valid, okay, par, npar; |
249 par = 0; | 249 par = 0; |
250 | 250 |
251 if (mbut == LEFT) | 251 if (mbut == LEFT) |
252 par = g_farge; | 252 par = g_farge; |
253 else | 253 else |
269 { | 269 { |
270 valid = 0; | 270 valid = 0; |
271 for (y = 0; y < Y; y++) | 271 for (y = 0; y < Y; y++) |
272 for (x = 0; x < X; x++) | 272 for (x = 0; x < X; x++) |
273 { | 273 { |
274 zad = 1024 + x + y * X; | 274 int zad = 1024 + x + y * X; |
275 ax = int(g_fillmap[zad]); | 275 ax = int(g_fillmap[zad]); |
276 if (ax == 100) | 276 if (ax == 100) |
277 { | 277 { |
278 valid = 1; | 278 valid = 1; |
279 if (y > 0 && floodfill_iq_plop(npar, x, y - 1)) | 279 if (y > 0 && floodfill_iq_plop(npar, x, y - 1)) |