#ifndef _LVGL_RPMSG_H #define _LVGL_RPMSG_H #include "rpmsg.h" #define RPMSG_SYNC_FUNC_LVGL_DRAW_SW_TRANSFORM RPMSG_SYNC_FUNC_MSG(RPMSG_SYNC_FUNC_TYPE_LVGL, 0x0001) #define RPMSG_SYNC_FUNC_LVGL_ARGB_AND_RGB_AA RPMSG_SYNC_FUNC_MSG(RPMSG_SYNC_FUNC_TYPE_LVGL, 0x0002) #define RPMSG_SYNC_FUNC_LVGL_DRAW_SW_IMG_DECODED RPMSG_SYNC_FUNC_MSG(RPMSG_SYNC_FUNC_TYPE_LVGL, 0x0003) #define RPMSG_SYNC_FUNC_LVGL_DRAW_SW_BLEND RPMSG_SYNC_FUNC_MSG(RPMSG_SYNC_FUNC_TYPE_LVGL, 0x0004) struct rpmsg_sync_msg_lvgl_draw_sw_transform_t { void * draw_ctx; const void * dest_area; const void * src_buf; int16_t src_w; int16_t src_h; int16_t src_stride; const void * draw_dsc; uint8_t cf; void * cbuf; void * abuf; uint32_t ck; }; struct rpmsg_sync_msg_lvgl_argb_and_rgb_aa_t { const uint8_t * src; int32_t src_offset; int16_t src_w; int16_t src_h; int16_t src_stride; int32_t xs_ups; int32_t ys_ups; int32_t xs_step; int32_t ys_step; int32_t x_end; void * cbuf; uint8_t * abuf; uint8_t cf; uint32_t ck; }; struct rpmsg_sync_msg_lvgl_draw_sw_img_decoded_t { void * draw_ctx; const void * draw_dsc; const void * coords; const uint8_t * src_buf; uint8_t cf; uint8_t mask_any; uint32_t max_buf_size; uint32_t ck; }; struct rpmsg_sync_msg_lvgl_draw_sw_blend_t { void * draw_ctx; const void * dsc; }; void lvgl_handler(struct rpmsg_lite_instance *rpmsg, struct rpmsg_msg_t *msg); #endif // _LVGL_RPMSG_H