summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorJensen <jensechu@gmail.com>2020-10-11 17:29:16 -0500
committerJensen <jensechu@gmail.com>2020-10-12 20:48:04 -0500
commit337019626a8cd0632cd2a6f6bae4ae09ae26cf16 (patch)
treee28e8c4b2434915e2868620d242edf8a0d7dc756 /shared-module
parentb359e2945ac9914c31afc7e692a4f46a837a854d (diff)
displayio: Add make_transparent to ColorConverter
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/displayio/ColorConverter.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/shared-module/displayio/ColorConverter.c b/shared-module/displayio/ColorConverter.c
index 0a1a7dc06..fef71cdf5 100644
--- a/shared-module/displayio/ColorConverter.c
+++ b/shared-module/displayio/ColorConverter.c
@@ -27,6 +27,7 @@
#include "shared-bindings/displayio/ColorConverter.h"
#include "py/misc.h"
+#include "py/runtime.h"
uint32_t displayio_colorconverter_dither_noise_1 (uint32_t n)
{
@@ -129,15 +130,18 @@ bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t*
}
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) {
+ if (self->transparent_color) {
+ mp_raise_RuntimeError(translate("transparent_color value is already set"));
+ }
self->transparent_color = transparent_color;
- // TODO: Does this require refreshing like the other modules?
}
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) {
- if (self->transparent_color == transparent_color) {
- m_del(uint8_t, self, transparent_color);
+ if (self->transparent_color != transparent_color) {
+ mp_raise_RuntimeError(translate("transparent_color value is not transparent"));
}
- // TODO: Does this require refreshing like the other modules?
+ // 0x1000000 will never equal a valid color
+ self->transparent_color = 0x1000000;
}
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) {