|
24 | 24 | * THE SOFTWARE.
|
25 | 25 | */
|
26 | 26 |
|
| 27 | +#include <string.h> |
27 | 28 |
|
28 | 29 | #include "shared-bindings/bitmaptools/__init__.h"
|
29 | 30 | #include "shared-bindings/displayio/Bitmap.h"
|
@@ -269,16 +270,92 @@ void common_hal_bitmaptools_paint_fill(displayio_bitmap_t *destination,
|
269 | 270 | fillArea.append((x - 1, y))
|
270 | 271 | fillArea.append((x, y + 1))
|
271 | 272 | fillArea.append((x, y - 1))*/
|
272 |
| - mp_obj_list_t *fill_area; |
273 | 273 |
|
| 274 | + mp_obj_t fill_area = mp_obj_new_list(0, NULL); |
| 275 | + mp_obj_t point[] = { mp_obj_new_int(x), mp_obj_new_int(y) }; |
| 276 | + mp_obj_list_append( |
| 277 | + fill_area, |
| 278 | + mp_obj_new_tuple(2, point) |
| 279 | + ); |
274 | 280 | //mp_obj_list_t *point;
|
275 | 281 | //mp_obj_list_append(point, x);
|
276 | 282 | //mp_obj_list_append(point, y);
|
277 | 283 |
|
278 |
| - mp_obj_list_append(MP_OBJ_FROM_PTR(*fill_area), MP_OBJ_NEW_QSTR(qstr_from_str("hello"))); |
279 | 284 |
|
280 |
| - //mp_printf(&mp_plat_print, fill_area[0]); |
281 |
| - //mp_obj_print(mp_obj_list_pop(fill_area, 0), PRINT_STR); |
| 285 | + mp_obj_t *fill_points; |
| 286 | + size_t list_length = 0; |
| 287 | + mp_obj_list_get(fill_area, &list_length, &fill_points); |
| 288 | + mp_printf(&mp_plat_print, "\nLen bfore loop: %d", list_length); |
| 289 | + mp_obj_t current_point; |
| 290 | + uint32_t current_point_color_value; |
| 291 | + |
| 292 | + size_t tuple_len = 0; |
| 293 | + mp_obj_t *tuple_items; |
| 294 | + |
| 295 | + |
| 296 | + while (list_length > 0){ |
| 297 | + mp_obj_list_get(fill_area, &list_length, &fill_points); |
| 298 | + mp_printf(&mp_plat_print, "\nLen begin loop: %d\n", list_length); |
| 299 | + current_point = mp_obj_list_pop(fill_area, 0); |
| 300 | + |
| 301 | + |
| 302 | + //mp_obj_print(current_point, PRINT_STR); |
| 303 | + mp_obj_tuple_get(current_point, &tuple_len, &tuple_items); |
| 304 | + current_point_color_value = common_hal_displayio_bitmap_get_pixel( |
| 305 | + destination, |
| 306 | + mp_obj_get_int(tuple_items[0]), |
| 307 | + mp_obj_get_int(tuple_items[1])); |
| 308 | + |
| 309 | + mp_printf(&mp_plat_print, "%d\n", current_point_color_value); |
| 310 | + |
| 311 | + if(current_point_color_value != background_value){ |
| 312 | + mp_obj_list_get(fill_area, &list_length, &fill_points); |
| 313 | + continue; |
| 314 | + } |
| 315 | + displayio_bitmap_write_pixel( |
| 316 | + destination, |
| 317 | + mp_obj_get_int(tuple_items[0]), |
| 318 | + mp_obj_get_int(tuple_items[1]), |
| 319 | + value); |
| 320 | + |
| 321 | + |
| 322 | + //mp_obj_t above_point[] = { mp_obj_new_int(tuple_items[0]), mp_obj_new_int(tuple_items[1])-1 }; |
| 323 | + mp_printf(&mp_plat_print,"math:\n"); |
| 324 | + mp_printf(&mp_plat_print, "%d\n", mp_obj_get_int(tuple_items[0])); |
| 325 | + mp_printf(&mp_plat_print, "%d\n", mp_obj_get_int(tuple_items[0])+1); |
| 326 | + int16_t above_int = mp_obj_get_int(tuple_items[0])+1; |
| 327 | + mp_printf(&mp_plat_print, "%d\n", above_int); |
| 328 | + int16_t *above = &above_int; |
| 329 | + mp_printf(&mp_plat_print, "%d\n", above); |
| 330 | + |
| 331 | + mp_obj_t above_point[] = { |
| 332 | + tuple_items[0], |
| 333 | + above}; |
| 334 | + |
| 335 | + mp_printf(&mp_plat_print,"above_point:\n"); |
| 336 | + //mp_obj_print(above_point, PRINT_STR); |
| 337 | + mp_obj_list_append( |
| 338 | + fill_area, |
| 339 | + mp_obj_new_tuple(2, above_point)); |
| 340 | + |
| 341 | + mp_obj_list_get(fill_area, &list_length, &fill_points); |
| 342 | + mp_printf(&mp_plat_print, "\nLen end loop: %d\n", list_length); |
| 343 | + } |
| 344 | + |
| 345 | + //mp_obj_print(fill_area, PRINT_STR); |
| 346 | + //mp_obj_print(current_point[0], PRINT_STR); |
| 347 | + |
| 348 | + /* |
| 349 | + mp_printf(&mp_plat_print, "\nLen: %d", list_length); |
| 350 | + size_t tuple_len = 0; |
| 351 | + mp_obj_t *tuple_items; |
| 352 | + mp_obj_tuple_get(current_point[0], &tuple_len, &tuple_items); |
| 353 | +
|
| 354 | + //mp_obj_print(mp_obj_get_int(tuple_items[0])+1, PRINT_STR); |
| 355 | +
|
| 356 | + mp_printf(&mp_plat_print, "\n%d", mp_obj_get_int(tuple_items[0])+1); |
| 357 | + */ |
| 358 | + |
282 | 359 | }
|
283 | 360 |
|
284 | 361 | void common_hal_bitmaptools_draw_line(displayio_bitmap_t *destination,
|
|
0 commit comments