19 #include "ui_display_brs.h"
21 #include "ui_drawing.h"
31 BSP_DECLARE_WEAK_FCNT DRAWING_Status UI_DISPLAY_BRS_restore(MICROUI_GraphicsContext *gc, MICROUI_Image *old_back_buffer,
34 uint32_t bpp = LLUI_DISPLAY_getImageBPP(old_back_buffer);
35 uint32_t width = UI_RECT_get_width(rect);
36 uint32_t height = UI_RECT_get_height(rect);
41 ret = UI_DRAWING_copyImage(gc, old_back_buffer, rect->x1, rect->y1, width, height, rect->x1, rect->y1);
43 uint8_t *dst = LLUI_DISPLAY_getBufferAddress(&gc->image);
44 uint8_t *src = LLUI_DISPLAY_getBufferAddress(old_back_buffer);
45 uint32_t stride = LLUI_DISPLAY_getStrideInBytes(&gc->image);
47 dst += rect->y1 * stride;
48 src += rect->y1 * stride;
50 if ((0 == rect->x1) && (old_back_buffer->width == width)) {
52 (void)memcpy(dst, src, stride * height);
55 dst += rect->x1 * bpp / 8u;
56 src += rect->x1 * bpp / 8u;
57 uint32_t size = width * bpp / 8u;
59 for (uint32_t y = 0; y < height; y++) {
60 (void)memcpy(dst, src, size);