From a664599a62da950438525685b7e50afef8ac89a7 Mon Sep 17 00:00:00 2001 From: cepetr Date: Wed, 24 Apr 2024 09:59:00 +0200 Subject: [PATCH] fixup! feat(core): refactor display drivers --- core/embed/bootloader/bootui.c | 1 + core/embed/bootloader/emulator.c | 4 ---- core/embed/lib/gl_color.h | 16 ++++++++-------- core/embed/rust/Cargo.toml | 8 ++++++++ .../display/stm32f429i-disc1/display_driver.c | 2 +- core/embed/unix/main.c | 2 +- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/core/embed/bootloader/bootui.c b/core/embed/bootloader/bootui.c index ae5937073..0033a5e1e 100644 --- a/core/embed/bootloader/bootui.c +++ b/core/embed/bootloader/bootui.c @@ -23,6 +23,7 @@ #include "bootui.h" #include "display.h" +#include "display_draw.h" #include "display_utils.h" #ifdef TREZOR_EMULATOR #include "emulator.h" diff --git a/core/embed/bootloader/emulator.c b/core/embed/bootloader/emulator.c index 1ad001af1..221741212 100644 --- a/core/embed/bootloader/emulator.c +++ b/core/embed/bootloader/emulator.c @@ -187,10 +187,6 @@ __attribute__((noreturn)) int main(int argc, char **argv) { jump_to(NULL); } -void display_set_little_endian(void) {} - -void display_reinit(void) {} - void mpu_config_bootloader(void) {} void mpu_config_off(void) {} diff --git a/core/embed/lib/gl_color.h b/core/embed/lib/gl_color.h index 11d61069a..7fbd09820 100644 --- a/core/embed/lib/gl_color.h +++ b/core/embed/lib/gl_color.h @@ -62,24 +62,24 @@ typedef uint32_t gl_color32_t; #endif // Extracts red component from gl_color16_t and converts it to 8-bit value -#define gl_color16_to_r(c) ((((c) & 0xF800) >> 8) | (((c) & 0xF800) >> 13)) +#define gl_color16_to_r(c) ((((c)&0xF800) >> 8) | (((c)&0xF800) >> 13)) // Extracts green component from gl_color16_t and converts it to 8-bit value -#define gl_color16_to_g(c) ((((c) & 0x07E0) >> 3) | (((c) & 0x07E0) >> 9)) +#define gl_color16_to_g(c) ((((c)&0x07E0) >> 3) | (((c)&0x07E0) >> 9)) // Extracts blue component from gl_color16_t and converts it to 8-bit value -#define gl_color16_to_b(c) ((((c) & 0x001F) << 3) | (((c) & 0x001F) >> 2)) +#define gl_color16_to_b(c) ((((c)&0x001F) << 3) | (((c)&0x001F) >> 2)) // Extracts red component from gl_color32_t -#define gl_color32_to_r(c) (((c) & 0x00FF0000) >> 16) +#define gl_color32_to_r(c) (((c)&0x00FF0000) >> 16) // Extracts green component from gl_color32_t -#define gl_color32_to_g(c) (((c) & 0x0000FF00) >> 8) +#define gl_color32_to_g(c) (((c)&0x0000FF00) >> 8) // Extracts blue component from gl_color32_t -#define gl_color32_to_b(c) (((c) & 0x000000FF) >> 0) +#define gl_color32_to_b(c) (((c)&0x000000FF) >> 0) // 4-bit linear interpolation between `fg` and `bg` #define a4_lerp(fg, bg, alpha) (((fg) * (alpha) + ((bg) * (15 - (alpha)))) / 15) // 8-bit linear interpolation between `fg` and `bg` -#define a8_lerp(fg, bg, alpha) (((fg) * (alpha) + ((bg) * (255 - (alpha)))) / 255) - +#define a8_lerp(fg, bg, alpha) \ + (((fg) * (alpha) + ((bg) * (255 - (alpha)))) / 255) // Constructs a 16-bit color from the given red (r), // green (g), and blue (b) values in the range 0..255 diff --git a/core/embed/rust/Cargo.toml b/core/embed/rust/Cargo.toml index 2faab74a7..6454358e8 100644 --- a/core/embed/rust/Cargo.toml +++ b/core/embed/rust/Cargo.toml @@ -15,10 +15,18 @@ micropython = [] protobuf = ["micropython"] ui = [] dma2d = [] +xframebuffer = [] +display_mono = [] +display_rgb565 = [] +display_rgba8888 = [] framebuffer = [] framebuffer32bit = [] ui_debug = [] ui_bounds = [] +ui_antialiasing = [] +ui_blurring = [] +ui_jpeg_decoder = ["jpeg"] +new_rendering = [] bootloader = [] button = [] touch = [] diff --git a/core/embed/trezorhal/stm32f4/display/stm32f429i-disc1/display_driver.c b/core/embed/trezorhal/stm32f4/display/stm32f429i-disc1/display_driver.c index 5c6c84f70..a62ea9239 100644 --- a/core/embed/trezorhal/stm32f4/display/stm32f429i-disc1/display_driver.c +++ b/core/embed/trezorhal/stm32f4/display/stm32f429i-disc1/display_driver.c @@ -140,7 +140,7 @@ void display_copy_mono1p(const gl_bitblt_t *bb) { bb_new.dst_row = drv->framebuf + (DISPLAY_RESX * bb_new.dst_y); bb_new.dst_stride = DISPLAY_RESX * sizeof(uint16_t); - gl_rgba8565_copy_mono1p(&bb_new); + gl_rgb565_copy_mono1p(&bb_new); } void display_copy_mono4(const gl_bitblt_t *bb) { diff --git a/core/embed/unix/main.c b/core/embed/unix/main.c index 8de53068f..2acd5b528 100644 --- a/core/embed/unix/main.c +++ b/core/embed/unix/main.c @@ -37,9 +37,9 @@ #include #include +#include "display.h" #include "extmod/misc.h" #include "extmod/vfs_posix.h" -#include "display.h" #include "flash.h" #include "flash_otp.h" #include "genhdr/mpversion.h"