Skip to content

Commit 5e789b3

Browse files
committed
Don't allocate the pre brightness buffer if brightness is 1.0 still
1 parent f6a635b commit 5e789b3

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

shared-module/_pixelbuf/PixelBuf.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff 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

107108
void 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) {

0 commit comments

Comments
 (0)