Render without any color mixing / anti-aliasing


I would like to render widgets without any color smoothing or antliasing. See picture of checkbox.

The code used is here

lv_display_t * lv_display = lv_display_create(H_RES, V_RES);
lv_display_set_antialiasing(lv_display, 0);
lv_display_set_flush_cb(lv_display, lv_flush_cb);
lv_display_set_buffers(lv_display, lv_buf, NULL, H_RES*V_RES*2/10, LV_DISPLAY_RENDER_MODE_PARTIAL);
lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x004040), LV_PART_MAIN);

The screen is rendered to an rgb332 screen at the lv_flush_cb. So any rgb565 color that comes in is made an rgb332 color. This normally works fine but the color smoothing sometimes looks bad and I want to avoid and CPU hit from it. I would like to completely remove color smoothing. Based on other posts I’ve been led to believe that the lv_display_set_antialiasing should do this, but it does not.

The checkbox (in Micropython):

scr = lv.screen_active()
b = lv.checkbox(scr)
cb.set_style_bg_color(lv.color_hex(0), lv.PART.INDICATOR)
cb.set_style_bg_color(lv.color_hex(0), lv.PART.INDICATOR | lv.STATE.CHECKED)
cb.set_style_border_color(lv.color_hex(0xffffff), lv.PART.INDICATOR)

Zoomed in, you can see the strange colors. I just want white, black, and 0x004040 in this picture, none of the greens/greys/blues.

What LVGL version are you using?