summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorMark Roberts <mdroberts1243@gmail.com>2020-09-25 21:27:29 -0400
committerMark Roberts <mdroberts1243@gmail.com>2020-09-25 21:27:29 -0400
commitb92154357145f4e7d976306490ef33b5d5fe9c92 (patch)
tree73b8adeefa7e158c59e39a9f02b2680ea420e439 /shared-module
parent19dbff67f2a4921ccbe06fdf29e229225e8aed2d (diff)
Requested changes take 1
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/displayio/Display.c25
-rw-r--r--shared-module/displayio/display_core.c4
2 files changed, 9 insertions, 20 deletions
diff --git a/shared-module/displayio/Display.c b/shared-module/displayio/Display.c
index afc4b7564..9864e9f9d 100644
--- a/shared-module/displayio/Display.c
+++ b/shared-module/displayio/Display.c
@@ -252,14 +252,8 @@ STATIC bool _refresh_area(displayio_display_obj_t* self, const displayio_area_t*
// write one single row at a time
if (self->SH1107_addressing) {
subrectangles = rows_per_buffer; // vertical (column mode) write each separately (height times)
- }
-
- // Skip this recalculation of subrectangles if SH1107 (each subrectangle is a single row)
- // [mdroberts1243] I am worried/confused about the pixels_in_byte_share_row calculation though
- // since it makes sense to be on a byte boundary (actually a page boundary too)
- // seems to work as is though.
- if ((displayio_area_size(&clipped) > buffer_size * pixels_per_word)
- && (!self->SH1107_addressing)) {
+ rows_per_buffer = 1;
+ } else if (displayio_area_size(&clipped) > buffer_size * pixels_per_word) {
rows_per_buffer = buffer_size * pixels_per_word / displayio_area_width(&clipped);
if (rows_per_buffer == 0) {
rows_per_buffer = 1;
@@ -297,18 +291,13 @@ STATIC bool _refresh_area(displayio_display_obj_t* self, const displayio_area_t*
.y2 = clipped.y1 + rows_per_buffer * (j + 1)
};
if (self->SH1107_addressing) {
- // one row only for SH1107 in vertical (column) mode
- subrectangle.y1 = clipped.y1 + j;
- subrectangle.y2 = clipped.y1 + (j + 1);
- };
- if ((remaining_rows < rows_per_buffer) && (!self->SH1107_addressing)) {
+ // one row only for SH1107 in vertical (column) mode
+ subrectangle.y1 = clipped.y1 + j;
+ subrectangle.y2 = clipped.y1 + (j + 1);
+ } else if (remaining_rows < rows_per_buffer) {
subrectangle.y2 = subrectangle.y1 + remaining_rows;
}
- if (self->SH1107_addressing) {
- remaining_rows -= 1;
- } else {
- remaining_rows -= rows_per_buffer;
- }
+ remaining_rows -= rows_per_buffer;
displayio_display_core_set_region_to_update(&self->core, self->set_column_command,
self->set_row_command, NO_COMMAND, NO_COMMAND, self->data_as_commands, false,
diff --git a/shared-module/displayio/display_core.c b/shared-module/displayio/display_core.c
index 6e05b4757..eb8c8f3b4 100644
--- a/shared-module/displayio/display_core.c
+++ b/shared-module/displayio/display_core.c
@@ -41,7 +41,7 @@
#include <string.h>
#define DISPLAYIO_CORE_DEBUG(...) (void)0
-//#define DISPLAYIO_CORE_DEBUG(...) mp_printf(&mp_plat_print __VA_OPT__(,) __VA_ARGS__)
+// #define DISPLAYIO_CORE_DEBUG(...) mp_printf(&mp_plat_print __VA_OPT__(,) __VA_ARGS__)
void displayio_display_core_construct(displayio_display_core_t* self,
mp_obj_t bus, uint16_t width, uint16_t height, uint16_t ram_width, uint16_t ram_height, int16_t colstart, int16_t rowstart, uint16_t rotation,
@@ -322,7 +322,7 @@ void displayio_display_core_start_refresh(displayio_display_core_t* self) {
void displayio_display_core_finish_refresh(displayio_display_core_t* self) {
if (self->current_group != NULL) {
-// DISPLAYIO_CORE_DEBUG("displayiocore group_finish_refresh\n");
+ DISPLAYIO_CORE_DEBUG("displayiocore group_finish_refresh\n");
displayio_group_finish_refresh(self->current_group);
}
self->full_refresh = false;