summaryrefslogtreecommitdiff
path: root/shared-module/displayio/Display.h
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2019-08-16 18:34:00 -0700
committerScott Shawcroft <scott@tannewt.org>2019-08-22 14:23:27 -0700
commit36a23e0fe3914b43645e51bf23a4d8bfec2db2c9 (patch)
treecc8a4688cfcd84c29e034268a875a0ed1e6fb8aa /shared-module/displayio/Display.h
parentc247e7df9c043dc6a452a6cabc7bf232c0e9e085 (diff)
Rework refresh API and factor common display stuff out
NOT TESTED! Just compiles Fixes #1691
Diffstat (limited to 'shared-module/displayio/Display.h')
-rw-r--r--shared-module/displayio/Display.h27
1 files changed, 7 insertions, 20 deletions
diff --git a/shared-module/displayio/Display.h b/shared-module/displayio/Display.h
index db0a23012..cff566a61 100644
--- a/shared-module/displayio/Display.h
+++ b/shared-module/displayio/Display.h
@@ -32,46 +32,33 @@
#include "shared-bindings/pulseio/PWMOut.h"
#include "shared-module/displayio/area.h"
-
-typedef bool (*display_bus_begin_transaction)(mp_obj_t bus);
-typedef void (*display_bus_send)(mp_obj_t bus, bool command, bool toggle_every_byte, uint8_t *data, uint32_t data_length);
-typedef void (*display_bus_end_transaction)(mp_obj_t bus);
+#include "shared-module/displayio/display_core.h"
typedef struct {
mp_obj_base_t base;
- mp_obj_t bus;
- displayio_group_t *current_group;
- uint64_t last_refresh;
- display_bus_begin_transaction begin_transaction;
- display_bus_send send;
- display_bus_end_transaction end_transaction;
+ displayio_display_core_t core;
union {
digitalio_digitalinout_obj_t backlight_inout;
pulseio_pwmout_obj_t backlight_pwm;
};
uint64_t last_backlight_refresh;
- displayio_buffer_transform_t transform;
- displayio_area_t area;
+ uint64_t last_refresh_call;
mp_float_t current_brightness;
- uint16_t width;
- uint16_t height;
- uint16_t rotation;
- _displayio_colorspace_t colorspace;
- int16_t colstart;
- int16_t rowstart;
uint16_t brightness_command;
+ uint16_t native_frames_per_second;
+ uint16_t native_frame_time;
uint8_t set_column_command;
uint8_t set_row_command;
uint8_t write_ram_command;
bool auto_refresh;
- bool single_byte_bounds;
bool data_as_commands;
bool auto_brightness;
bool updating_backlight;
- bool full_refresh; // New group means we need to refresh the whole display.
} displayio_display_obj_t;
void displayio_display_background(displayio_display_obj_t* self);
void release_display(displayio_display_obj_t* self);
+void displayio_display_collect_ptrs(displayio_display_obj_t* self);
+
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_DISPLAY_H