Improved readability of Single Byte Bounds code

This commit is contained in:
Melissa LeBlanc-Williams 2019-03-31 14:17:54 -07:00
parent bd4a156b9d
commit 8b4ca24e56

View File

@ -212,21 +212,27 @@ void displayio_display_end_transaction(displayio_display_obj_t* self) {
} }
void displayio_display_set_region_to_update(displayio_display_obj_t* self, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { void displayio_display_set_region_to_update(displayio_display_obj_t* self, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {
uint16_t data[2];
self->send(self->bus, true, &self->set_column_command, 1); self->send(self->bus, true, &self->set_column_command, 1);
if (self->single_byte_bounds) { if (self->single_byte_bounds) {
data[0] = __builtin_bswap16(((x0 + self->colstart) << 8) | ((x1 - 1 + self->colstart) & 0xFF)); uint8_t data[2];
data[0] = (x0 + self->colstart) & 0xFF;
data[1] = (x1 - 1 + self->colstart) & 0xFF;
self->send(self->bus, false, (uint8_t*) data, 2); self->send(self->bus, false, (uint8_t*) data, 2);
} else { } else {
uint16_t data[2];
data[0] = __builtin_bswap16(x0 + self->colstart); data[0] = __builtin_bswap16(x0 + self->colstart);
data[1] = __builtin_bswap16(x1 - 1 + self->colstart); data[1] = __builtin_bswap16(x1 - 1 + self->colstart);
self->send(self->bus, false, (uint8_t*) data, 4); self->send(self->bus, false, (uint8_t*) data, 4);
} }
self->send(self->bus, true, &self->set_row_command, 1); self->send(self->bus, true, &self->set_row_command, 1);
if (self->single_byte_bounds) { if (self->single_byte_bounds) {
data[0] = __builtin_bswap16(((y0 + self->rowstart) << 8) | ((y1 - 1 + self->rowstart) & 0xFF)); uint8_t data[2];
data[0] = (y0 + self->rowstart) & 0xFF;
data[1] = (y1 - 1 + self->rowstart) & 0xFF;
self->send(self->bus, false, (uint8_t*) data, 2); self->send(self->bus, false, (uint8_t*) data, 2);
} else { } else {
uint16_t data[2];
data[0] = __builtin_bswap16(y0 + self->rowstart); data[0] = __builtin_bswap16(y0 + self->rowstart);
data[1] = __builtin_bswap16(y1 - 1 + self->rowstart); data[1] = __builtin_bswap16(y1 - 1 + self->rowstart);
self->send(self->bus, false, (uint8_t*) data, 4); self->send(self->bus, false, (uint8_t*) data, 4);