20 #include "ui_display_brs.h"
22 #include "ui_drawing.h"
32 BSP_DECLARE_WEAK_FCNT DRAWING_Status UI_DISPLAY_BRS_restore(MICROUI_GraphicsContext* gc, MICROUI_Image* old_back_buffer, ui_rect_t* rect) {
35 uint32_t bpp = LLUI_DISPLAY_getImageBPP(old_back_buffer);
36 uint32_t width = UI_RECT_get_width(rect);
37 uint32_t height = UI_RECT_get_height(rect);
42 ret = UI_DRAWING_copyImage(gc, old_back_buffer, rect->x1, rect->y1, width, height, rect->x1, rect->y1);
46 uint8_t* dst = LLUI_DISPLAY_getBufferAddress(&gc->image);
47 uint8_t* src = LLUI_DISPLAY_getBufferAddress(old_back_buffer);
48 uint32_t stride = LLUI_DISPLAY_getStrideInBytes(&gc->image);
50 dst += rect->y1 * stride;
51 src += rect->y1 * stride;
53 if ((0 == rect->x1) && (old_back_buffer->width == width)) {
55 (void)memcpy(dst, src, stride * height);
59 dst += rect->x1 * bpp / 8u;
60 src += rect->x1 * bpp / 8u;
61 uint32_t size = width * bpp / 8u;
63 for (uint32_t y = 0; y < height; y++) {
64 (void)memcpy(dst, src, size);