Skip to content

Commit 5c7418c

Browse files
committed
displayio: Add make_transparent to ColorConverter
1 parent 0085930 commit 5c7418c

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

shared-bindings/displayio/ColorConverter.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,25 @@ const mp_obj_property_t displayio_colorconverter_dither_obj = {
110110
(mp_obj_t)&mp_const_none_obj},
111111
};
112112

113+
//| def make_transparent(self, pixel: int) -> None:
114+
//| """Sets a pixel to not opaque."""
115+
//|
116+
STATIC mp_obj_t displayio_colorconverter_make_transparent(mp_obj_t self_in, mp_obj_t transparent_color_obj) {
117+
displayio_colorconverter_t *self = MP_OBJ_TO_PTR(self_in);
118+
119+
mp_int_t transparent_color;
120+
if (!mp_obj_get_int_maybe(transparent_color_obj, &transparent_color)) {
121+
mp_raise_ValueError(translate("transparent_color should be an int"));
122+
}
123+
common_hal_displayio_colorconverter_make_transparent(self, transparent_color);
124+
return mp_const_none;
125+
}
126+
MP_DEFINE_CONST_FUN_OBJ_2(displayio_colorconverter_make_transparent_obj, displayio_colorconverter_make_transparent);
127+
113128
STATIC const mp_rom_map_elem_t displayio_colorconverter_locals_dict_table[] = {
114129
{ MP_ROM_QSTR(MP_QSTR_convert), MP_ROM_PTR(&displayio_colorconverter_convert_obj) },
115130
{ MP_ROM_QSTR(MP_QSTR_dither), MP_ROM_PTR(&displayio_colorconverter_dither_obj) },
131+
{ MP_ROM_QSTR(MP_QSTR_make_transparent), MP_ROM_PTR(&displayio_colorconverter_make_transparent_obj) },
116132
};
117133
STATIC MP_DEFINE_CONST_DICT(displayio_colorconverter_locals_dict, displayio_colorconverter_locals_dict_table);
118134

shared-module/displayio/ColorConverter.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,12 @@ bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t*
130130

131131
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) {
132132
self->transparent_color = transparent_color;
133-
// TODO: Does this require refreshing like the other modules?
134133
}
135134

136135
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) {
137136
if (self->transparent_color == transparent_color) {
138137
m_del(uint8_t, self, transparent_color);
139138
}
140-
// TODO: Does this require refreshing like the other modules?
141139
}
142140

143141
void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _displayio_colorspace_t* colorspace, const displayio_input_pixel_t *input_pixel, displayio_output_pixel_t *output_color) {

0 commit comments

Comments
 (0)