Remove scratch buffer

This commit is contained in:
Raphael Coeffic
2022-06-11 15:38:08 +02:00
committed by Raphael Coeffic
parent b40441f0c0
commit 86152da85d
11 changed files with 97 additions and 53 deletions
@@ -114,6 +114,7 @@ if(PCB STREQUAL X10 OR PCB STREQUAL X12S OR PCB STREQUAL NV14)
${BOOTLOADER_SRC}
../../../../../gui/colorlcd/fonts.cpp
../../../../../gui/colorlcd/colors.cpp
../../../../../fonts/lvgl/lv_font_roboto_16.c
../../../../../thirdparty/libopenui/src/bitmapbuffer.cpp
../../../../../targets/${TARGET_DIR}/sdram_driver.c
../../../../../targets/common/arm/stm32/sdio_sd.c
@@ -122,6 +123,11 @@ if(PCB STREQUAL X10 OR PCB STREQUAL X12S OR PCB STREQUAL NV14)
../../../../../syscalls.c
)
# Add LVGL sources
foreach(LVGL_FILE ${LVGL_SRC_FILES})
set(BOOTLOADER_SRC ${BOOTLOADER_SRC} ../../../../../${LVGL_FILE})
endforeach()
if(USB_CHARGER)
set(BOOTLOADER_SRC
${BOOTLOADER_SRC}
+1 -5
View File
@@ -47,7 +47,6 @@
uint8_t LCD_FIRST_FRAME_BUFFER[DISPLAY_BUFFER_SIZE * sizeof(pixel_t)] __SDRAM;
uint8_t LCD_SECOND_FRAME_BUFFER[DISPLAY_BUFFER_SIZE * sizeof(pixel_t)] __SDRAM;
uint8_t LCD_BACKUP_FRAME_BUFFER[DISPLAY_BUFFER_SIZE * sizeof(pixel_t)] __SDRAM;
uint8_t LCD_SCRATCH_FRAME_BUFFER[DISPLAY_BUFFER_SIZE * sizeof(pixel_t)] __SDRAM;
uint8_t currentLayer = LCD_FIRST_LAYER;
BitmapBuffer lcdBuffer1(BMP_RGB565, LCD_W, LCD_H, (uint16_t *)LCD_FIRST_FRAME_BUFFER);
@@ -628,10 +627,6 @@ uint16_t* lcdGetBackupBuffer()
return (uint16_t*)LCD_BACKUP_FRAME_BUFFER;
}
uint16_t* lcdGetScratchBuffer()
{
return (uint16_t*)LCD_SCRATCH_FRAME_BUFFER;
}
static volatile uint8_t _frameBufferAddressReloaded = 0;
@@ -673,6 +668,7 @@ void newLcdRefresh(uint16_t * buffer)
while(_frameBufferAddressReloaded == 0);
#endif
}
void lcdRefresh()
{
//lcdSwitchLayers();
+6 -9
View File
@@ -59,19 +59,16 @@ void lcdRefresh()
pixel_t displayBuf1[DISPLAY_BUFFER_SIZE];
pixel_t displayBuf2[DISPLAY_BUFFER_SIZE];
pixel_t scratchBuf[DISPLAY_BUFFER_SIZE];
pixel_t LCD_BACKUP_FRAME_BUFFER[DISPLAY_BUFFER_SIZE];
BitmapBuffer lcdBackup(BMP_RGB565, LCD_W, LCD_H, LCD_BACKUP_FRAME_BUFFER);
BitmapBuffer scratch(BMP_RGB565, LCD_W, LCD_H, scratchBuf);
BitmapBuffer _lcd1(BMP_RGB565, LCD_W, LCD_H, displayBuf1);
BitmapBuffer _lcd2(BMP_RGB565, LCD_W, LCD_H, displayBuf2);
BitmapBuffer * lcd = &_lcd1;
BitmapBuffer * lcdFront = &_lcd2;
uint16_t *lcdGetScratchBuffer() { return static_cast<uint16_t *>(scratchBuf); }
void lcdStoreBackupBuffer()
{
@@ -115,10 +112,10 @@ void newLcdRefresh(uint16_t *buffer, const rect_t& copy_area)
// Mark screen dirty for async refresh
simuLcdRefresh = true;
// .. and wait for refresh
auto start = RTOS_GET_MS();
while(simuLcdRefresh ||
(RTOS_GET_MS() - start > 100));
// // .. and wait for refresh
// auto start = RTOS_GET_MS();
// while(simuLcdRefresh ||
// (RTOS_GET_MS() - start <= 100));
}
void lcdRefresh()
{
@@ -145,8 +142,8 @@ void lcdRefresh()
void lcdInit()
{
_lcd1.clear();
_lcd2.clear();
memset(displayBuf1, 0, sizeof(displayBuf1));
memset(displayBuf2, 0, sizeof(displayBuf2));
}
void DMAFillRect(uint16_t *dest, uint16_t destw, uint16_t desth, uint16_t x,