@@ -126,27 +126,6 @@ STATIC void validate_clip_region(displayio_bitmap_t *bitmap, mp_obj_t clip0_tupl
126126
127127}
128128
129- MAKE_ENUM_VALUE (bitmaptools_blendmode_type , bitmaptools_blendmode , NORMAL , BITMAPTOOLS_BLENDMODE_NORMAL );
130- MAKE_ENUM_VALUE (bitmaptools_blendmode_type , bitmaptools_blendmode , SCREEN , BITMAPTOOLS_BLENDMODE_SCREEN );
131-
132- //| class BlendMode:
133- //| """The blend mode for `alphablend` to operate use"""
134- //|
135- //| NORMAL: Blendmode
136- //| """Blend with equal parts of the two source bitmaps"""
137- //|
138- //| SCREEN: Blendmode
139- //| """Blend based on the value in each color channel. The result keeps the lighter colors and discards darker colors."""
140- //|
141- MAKE_ENUM_MAP (bitmaptools_blendmode ) {
142- MAKE_ENUM_MAP_ENTRY (bitmaptools_blendmode , NORMAL ),
143- MAKE_ENUM_MAP_ENTRY (bitmaptools_blendmode , SCREEN ),
144- };
145- STATIC MP_DEFINE_CONST_DICT (bitmaptools_blendmode_locals_dict , bitmaptools_blendmode_locals_table );
146-
147- MAKE_PRINTER (bitmaptools , bitmaptools_blendmode );
148- MAKE_ENUM_TYPE (bitmaptools , BlendMode , bitmaptools_blendmode );
149-
150129//| def rotozoom(
151130//| dest_bitmap: displayio.Bitmap,
152131//| source_bitmap: displayio.Bitmap,
@@ -295,6 +274,27 @@ STATIC mp_obj_t bitmaptools_obj_rotozoom(size_t n_args, const mp_obj_t *pos_args
295274
296275MP_DEFINE_CONST_FUN_OBJ_KW (bitmaptools_rotozoom_obj , 0 , bitmaptools_obj_rotozoom );
297276
277+ //| class BlendMode:
278+ //| """The blend mode for `alphablend` to operate use"""
279+ //|
280+ //| Normal: BlendMode
281+ //| """Blend with equal parts of the two source bitmaps"""
282+ //|
283+ //| Screen: BlendMode
284+ //| """Blend based on the value in each color channel. The result keeps the lighter colors and discards darker colors."""
285+ //|
286+ MAKE_ENUM_VALUE (bitmaptools_blendmode_type , bitmaptools_blendmode , Normal , BITMAPTOOLS_BLENDMODE_NORMAL );
287+ MAKE_ENUM_VALUE (bitmaptools_blendmode_type , bitmaptools_blendmode , Screen , BITMAPTOOLS_BLENDMODE_SCREEN );
288+
289+ MAKE_ENUM_MAP (bitmaptools_blendmode ) {
290+ MAKE_ENUM_MAP_ENTRY (bitmaptools_blendmode , Normal ),
291+ MAKE_ENUM_MAP_ENTRY (bitmaptools_blendmode , Screen ),
292+ };
293+ STATIC MP_DEFINE_CONST_DICT (bitmaptools_blendmode_locals_dict , bitmaptools_blendmode_locals_table );
294+
295+ MAKE_PRINTER (bitmaptools , bitmaptools_blendmode );
296+ MAKE_ENUM_TYPE (bitmaptools , BlendMode , bitmaptools_blendmode );
297+
298298// requires at least 2 arguments (destination bitmap and source bitmap)
299299
300300//| def alphablend(
@@ -304,9 +304,9 @@ MP_DEFINE_CONST_FUN_OBJ_KW(bitmaptools_rotozoom_obj, 0, bitmaptools_obj_rotozoom
304304//| colorspace: displayio.Colorspace,
305305//| factor1: float = 0.5,
306306//| factor2: Optional[float] = None,
307- //| blendmode: Optional[Blendmode ] = Blendmode.NORMAL ,
308- //| skip_source1_index: int,
309- //| skip_source2_index: int,
307+ //| blendmode: Optional[BlendMode ] = BlendMode.Normal ,
308+ //| skip_source1_index: Union[ int, None] = None ,
309+ //| skip_source2_index: Union[ int, None] = None ,
310310//| ) -> None:
311311//| """Alpha blend the two source bitmaps into the destination.
312312//|
@@ -319,7 +319,7 @@ MP_DEFINE_CONST_FUN_OBJ_KW(bitmaptools_rotozoom_obj, 0, bitmaptools_obj_rotozoom
319319//| :param float factor1: The proportion of bitmap 1 to mix in
320320//| :param float factor2: The proportion of bitmap 2 to mix in. If specified as `None`, ``1-factor1`` is used. Usually the proportions should sum to 1.
321321//| :param displayio.Colorspace colorspace: The colorspace of the bitmaps. They must all have the same colorspace. Only the following colorspaces are permitted: ``L8``, ``RGB565``, ``RGB565_SWAPPED``, ``BGR565`` and ``BGR565_SWAPPED``.
322- //| :param bitmaptools.BlendMode blendmode: The blend mode to use. Default is NORMAL .
322+ //| :param bitmaptools.BlendMode blendmode: The blend mode to use. Default is Normal .
323323//| :param int skip_source1_index: bitmap palette index in source_bitmap_1 that will not be blended, set to None to blend all pixels
324324//| :param int skip_source2_index: bitmap palette index in source_bitmap_2 that will not be blended, set to None to blend all pixels
325325//|
@@ -337,7 +337,7 @@ STATIC mp_obj_t bitmaptools_alphablend(size_t n_args, const mp_obj_t *pos_args,
337337 {MP_QSTR_colorspace , MP_ARG_REQUIRED | MP_ARG_OBJ , {.u_obj = NULL }},
338338 {MP_QSTR_factor_1 , MP_ARG_OBJ , {.u_obj = MP_ROM_NONE }},
339339 {MP_QSTR_factor_2 , MP_ARG_OBJ , {.u_obj = MP_ROM_NONE }},
340- {MP_QSTR_blendmode , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_obj = (void * )& bitmaptools_blendmode_NORMAL_obj }},
340+ {MP_QSTR_blendmode , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_obj = (void * )& bitmaptools_blendmode_Normal_obj }},
341341 {MP_QSTR_skip_source1_index , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_obj = mp_const_none } },
342342 {MP_QSTR_skip_source2_index , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_obj = mp_const_none } },
343343 };
@@ -1135,7 +1135,6 @@ STATIC const mp_rom_map_elem_t bitmaptools_module_globals_table[] = {
11351135 { MP_ROM_QSTR (MP_QSTR_readinto ), MP_ROM_PTR (& bitmaptools_readinto_obj ) },
11361136 { MP_ROM_QSTR (MP_QSTR_rotozoom ), MP_ROM_PTR (& bitmaptools_rotozoom_obj ) },
11371137 { MP_ROM_QSTR (MP_QSTR_arrayblit ), MP_ROM_PTR (& bitmaptools_arrayblit_obj ) },
1138- { MP_ROM_QSTR (MP_QSTR_Blendmode ), MP_ROM_PTR (& bitmaptools_blendmode_type ) },
11391138 { MP_ROM_QSTR (MP_QSTR_alphablend ), MP_ROM_PTR (& bitmaptools_alphablend_obj ) },
11401139 { MP_ROM_QSTR (MP_QSTR_fill_region ), MP_ROM_PTR (& bitmaptools_fill_region_obj ) },
11411140 { MP_ROM_QSTR (MP_QSTR_boundary_fill ), MP_ROM_PTR (& bitmaptools_boundary_fill_obj ) },
@@ -1144,6 +1143,7 @@ STATIC const mp_rom_map_elem_t bitmaptools_module_globals_table[] = {
11441143 { MP_ROM_QSTR (MP_QSTR_draw_circle ), MP_ROM_PTR (& bitmaptools_draw_circle_obj ) },
11451144 { MP_ROM_QSTR (MP_QSTR_blit ), MP_ROM_PTR (& bitmaptools_blit_obj ) },
11461145 { MP_ROM_QSTR (MP_QSTR_dither ), MP_ROM_PTR (& bitmaptools_dither_obj ) },
1146+ { MP_ROM_QSTR (MP_QSTR_BlendMode ), MP_ROM_PTR (& bitmaptools_blendmode_type ) },
11471147 { MP_ROM_QSTR (MP_QSTR_DitherAlgorithm ), MP_ROM_PTR (& bitmaptools_dither_algorithm_type ) },
11481148};
11491149STATIC MP_DEFINE_CONST_DICT (bitmaptools_module_globals , bitmaptools_module_globals_table );
0 commit comments