有没有办法把SDL设置成RGB565(16bit)颜色,然后再把 littlevgl也改成16bit ?
离线
谢谢楼上大神,我试一试。
离线
我试了一下和2楼一样的问题,
单后来看了 SDL模拟器 monitor.c 的代码,
#if LV_COLOR_DEPTH != 24
int32_t x;
for(y = y1; y <= y2; y++) {
for(x = x1; x <= x2; x++) {
tft_fb[y * MONITOR_HOR_RES + x] = lv_color_to24(*color_p) | 0xFF000000;
color_p++;
}}
#else
uint32_t w = x2 - x1 + 1;
for(y = y1; y <= y2; y++) {
memcpy(&tft_fb[y * MONITOR_HOR_RES + x1], color_p, w * sizeof(lv_color_t));color_p += w;
}
#endif
发现模拟器不需要做任何修改,
因为如果把模拟器改成RGB565之后,
tft_fb在内存中的排列就不是 SDL_PIXELFORMAT_ARGB8888 这样了。
如果实在要改掉模拟成SDL_PIXELFORMAT_RGB565也不是不行,
但是要改下这部分代码而已。
@F1F2 你可以改改试一试哦。
离线
谢谢楼上两位, 终于解决这个问题了, 用SDL_PIXELFORMAT_RGB565 也可以了.
代码稍微改一点点,就是用那个 memcpy
离线