File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -68,6 +68,7 @@ void common_hal__pixelbuf_pixelbuf_construct(pixelbuf_pixelbuf_obj_t *self, size
6868 }
6969 }
7070 // Call set_brightness so that it can allocate a second buffer if needed.
71+ self -> brightness = 1.0 ;
7172 common_hal__pixelbuf_pixelbuf_set_brightness (MP_OBJ_FROM_PTR (self ), brightness );
7273
7374 // Turn on auto_write. We don't want to do it with the above brightness call.
@@ -106,6 +107,12 @@ mp_float_t common_hal__pixelbuf_pixelbuf_get_brightness(mp_obj_t self_in) {
106107
107108void common_hal__pixelbuf_pixelbuf_set_brightness (mp_obj_t self_in , mp_float_t brightness ) {
108109 pixelbuf_pixelbuf_obj_t * self = native_pixelbuf (self_in );
110+ // Skip out if the brightness is already set. The default of self->brightness is 1.0. So, this
111+ // also prevents the pre_brightness_buffer allocation when brightness is set to 1.0 again.
112+ mp_float_t change = brightness - self -> brightness ;
113+ if (-0.001 < change && change < 0.001 ) {
114+ return ;
115+ }
109116 self -> brightness = brightness ;
110117 size_t pixel_len = self -> pixel_count * self -> bytes_per_pixel ;
111118 if (self -> pre_brightness_buffer == NULL ) {
You can’t perform that action at this time.
0 commit comments