|
32 | 32 | #include "shared-bindings/displayio/__init__.h" |
33 | 33 | #include "shared-module/displayio/Palette.h" |
34 | 34 | #include "py/obj.h" |
| 35 | +#include "py/runtime.h" |
35 | 36 | #include "extmod/vfs_fat.h" |
36 | 37 |
|
37 | 38 | typedef enum { |
@@ -88,4 +89,21 @@ void common_hal_bitmaptools_dither(displayio_bitmap_t *dest_bitmap, displayio_bi |
88 | 89 | void common_hal_bitmaptools_alphablend(displayio_bitmap_t *destination, displayio_bitmap_t *source1, displayio_bitmap_t *source2, displayio_colorspace_t colorspace, mp_float_t factor1, mp_float_t factor2, |
89 | 90 | bitmaptools_blendmode_t blendmode, uint32_t skip_source1_index, bool skip_source1_index_none, uint32_t skip_source2_index, bool skip_source2_index_none); |
90 | 91 |
|
| 92 | +typedef struct { |
| 93 | + union { |
| 94 | + struct { |
| 95 | + int16_t x1, y1, x2, y2; |
| 96 | + }; |
| 97 | + int16_t arr[4]; |
| 98 | + }; |
| 99 | +} bitmaptools_rect_t; |
| 100 | + |
| 101 | +#define ARGS_X1_Y1_X2_Y2 ARG_x1, ARG_y1, ARG_x2, ARG_y2 |
| 102 | +#define ALLOWED_ARGS_X1_Y1_X2_Y2(if_required1, if_required2) \ |
| 103 | + {MP_QSTR_x1, if_required1 | MP_ARG_OBJ, {.u_obj = MP_ROM_INT(0)}}, \ |
| 104 | + {MP_QSTR_y1, if_required2 | MP_ARG_OBJ, {.u_obj = MP_ROM_INT(0)}}, \ |
| 105 | + {MP_QSTR_x2, if_required1 | MP_ARG_OBJ, {.u_obj = MP_ROM_NONE}}, \ |
| 106 | + {MP_QSTR_y2, if_required2 | MP_ARG_OBJ, {.u_obj = MP_ROM_NONE}} |
| 107 | + |
| 108 | +bitmaptools_rect_t bitmaptools_validate_coord_range_pair(const mp_arg_val_t in[4], int width, int height); |
91 | 109 | #endif // MICROPY_INCLUDED_SHARED_BINDINGS_BITMAPTOOLS__INIT__H |
0 commit comments