Skip to content

Commit 601a910

Browse files
committed
More improvements to Terminal:
* Fix Hallowing. * Fix builds without displayio. * Fix y bounds that appears as untrollable row of pixels. * Add scrolling to TileGrid. * Remove Sprite to save space. TileGrid is a drop in replacement.
1 parent 6145f08 commit 601a910

18 files changed

Lines changed: 42 additions & 422 deletions

File tree

main.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "lib/utils/pyexec.h"
4545

4646
#include "mpconfigboard.h"
47+
#include "shared-module/displayio/__init__.h"
4748
#include "supervisor/cpu.h"
4849
#include "supervisor/memory.h"
4950
#include "supervisor/port.h"
@@ -61,10 +62,6 @@
6162
#include "shared-module/network/__init__.h"
6263
#endif
6364

64-
#ifdef CIRCUITPY_DISPLAYIO
65-
#include "shared-module/displayio/__init__.h"
66-
#endif
67-
6865
void do_str(const char *src, mp_parse_input_kind_t input_kind) {
6966
mp_lexer_t *lex = mp_lexer_new_from_str_len(MP_QSTR__lt_stdin_gt_, src, strlen(src), 0);
7067
if (lex == NULL) {
@@ -203,10 +200,8 @@ bool run_code_py(safe_mode_t safe_mode) {
203200
serial_write_compressed(translate("WARNING: Your code filename has two extensions\n"));
204201
}
205202
}
206-
#ifdef CIRCUITPY_DISPLAYIO
207203
// Turn off the display before the heap disappears.
208204
reset_displays();
209-
#endif
210205
stop_mp();
211206
free_memory(heap);
212207
supervisor_move_memory();

ports/atmel-samd/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,6 @@ SRC_SHARED_MODULE = \
388388
displayio/OnDiskBitmap.c \
389389
displayio/Palette.c \
390390
displayio/Shape.c \
391-
displayio/Sprite.c \
392391
displayio/TileGrid.c \
393392
gamepad/__init__.c \
394393
gamepad/GamePad.c \

ports/atmel-samd/boards/hallowing_m0_express/board.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,14 @@ void board_init(void) {
8484
128, // Width
8585
128, // Height
8686
2, // column start
87-
0, // row start
87+
1, // row start
8888
16, // Color depth
8989
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
9090
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
9191
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
9292
display_init_sequence,
93-
sizeof(display_init_sequence));
93+
sizeof(display_init_sequence),
94+
&pin_PA00);
9495
}
9596

9697
bool board_requests_safe_mode(void) {

ports/atmel-samd/mpconfigport.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ extern const struct _mp_obj_module_t pixelbuf_module;
351351
#define MICROPY_PY_BUILTINS_COMPLEX (0)
352352

353353
#define MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG (0)
354+
#define CIRCUITPY_DISPLAYIO (0)
354355
#define CIRCUITPY_DISPLAY_LIMIT (0)
355356
#endif
356357

shared-bindings/displayio/Sprite.c

Lines changed: 0 additions & 195 deletions
This file was deleted.

shared-bindings/displayio/Sprite.h

Lines changed: 0 additions & 43 deletions
This file was deleted.

shared-bindings/displayio/TileGrid.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,6 @@ mp_obj_t common_hal_displayio_tilegrid_get_pixel_shader(displayio_tilegrid_t *se
4242
void common_hal_displayio_tilegrid_set_pixel_shader(displayio_tilegrid_t *self, mp_obj_t pixel_shader);
4343

4444
void common_hal_displayio_textgrid_set_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y, uint8_t tile_index);
45+
void common_hal_displayio_textgrid_set_top_left(displayio_tilegrid_t *self, uint16_t x, uint16_t y);
4546

4647
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_TILEGRID_H

shared-bindings/displayio/__init__.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = {
9696
{ MP_ROM_QSTR(MP_QSTR_OnDiskBitmap), MP_ROM_PTR(&displayio_ondiskbitmap_type) },
9797
{ MP_ROM_QSTR(MP_QSTR_Palette), MP_ROM_PTR(&displayio_palette_type) },
9898
{ MP_ROM_QSTR(MP_QSTR_Shape), MP_ROM_PTR(&displayio_shape_type) },
99-
{ MP_ROM_QSTR(MP_QSTR_Sprite), MP_ROM_PTR(&displayio_sprite_type) },
10099
{ MP_ROM_QSTR(MP_QSTR_TileGrid), MP_ROM_PTR(&displayio_tilegrid_type) },
101100

102101
{ MP_ROM_QSTR(MP_QSTR_FourWire), MP_ROM_PTR(&displayio_fourwire_type) },

shared-module/displayio/Display.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ void displayio_display_start_region_update(displayio_display_obj_t* self, uint16
178178
data[1] = __builtin_bswap16(x1 - 1 + self->colstart);
179179
self->send(self->bus, false, (uint8_t*) data, 4);
180180
self->send(self->bus, true, &self->set_row_command, 1);
181-
data[0] = __builtin_bswap16(y0 + 1 + self->rowstart);
182-
data[1] = __builtin_bswap16(y1 + self->rowstart);
181+
data[0] = __builtin_bswap16(y0 + self->rowstart);
182+
data[1] = __builtin_bswap16(y1 - 1 + self->rowstart);
183183
self->send(self->bus, false, (uint8_t*) data, 4);
184184
self->send(self->bus, true, &self->write_ram_command, 1);
185185
}

shared-module/displayio/Group.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer)
4040
mp_raise_RuntimeError(translate("Group full"));
4141
}
4242
mp_obj_t native_layer = mp_instance_cast_to_native_base(layer, &displayio_group_type);
43-
if (native_layer == MP_OBJ_NULL) {
44-
native_layer = mp_instance_cast_to_native_base(layer, &displayio_sprite_type);
45-
}
4643
if (native_layer == MP_OBJ_NULL) {
4744
native_layer = mp_instance_cast_to_native_base(layer, &displayio_tilegrid_type);
4845
}
@@ -85,10 +82,6 @@ bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, ui
8582
if (displayio_tilegrid_get_pixel(layer, x, y, pixel)) {
8683
return true;
8784
}
88-
} else if (MP_OBJ_IS_TYPE(layer, &displayio_sprite_type)) {
89-
if (displayio_sprite_get_pixel(layer, x, y, pixel)) {
90-
return true;
91-
}
9285
} else if (MP_OBJ_IS_TYPE(layer, &displayio_group_type)) {
9386
if (displayio_group_get_pixel(layer, x, y, pixel)) {
9487
return true;
@@ -113,10 +106,6 @@ bool displayio_group_needs_refresh(displayio_group_t *self) {
113106
if (displayio_group_needs_refresh(layer)) {
114107
return true;
115108
}
116-
} else if (MP_OBJ_IS_TYPE(layer, &displayio_sprite_type)) {
117-
if (displayio_sprite_needs_refresh(layer)) {
118-
return true;
119-
}
120109
}
121110
}
122111
return false;
@@ -130,8 +119,6 @@ void displayio_group_finish_refresh(displayio_group_t *self) {
130119
displayio_tilegrid_finish_refresh(layer);
131120
} else if (MP_OBJ_IS_TYPE(layer, &displayio_group_type)) {
132121
displayio_group_finish_refresh(layer);
133-
} else if (MP_OBJ_IS_TYPE(layer, &displayio_sprite_type)) {
134-
displayio_sprite_finish_refresh(layer);
135122
}
136123
}
137124
}

0 commit comments

Comments
 (0)