Question about `fillLCD`

For some reason I can’t get fillLCD to work.

What is fillLCD's argument supposed to be?
Is it a palette index?
Is it an RGB565 colour?

Don’t quote me but I’m pretty sure it’s bool for direct fill or screen buffer fill.

It fills with current color

The argument is supposed to be of type uint16_t, so if it’s being used as a sort of “0 for buffer, 1 for screen”, and there are no other options planned, then that’s really counter-intuitive.

That is a 16-bit color value.

Here it is written to LCD:

void Pokitto::lcdFillSurface(uint16_t c) {
    uint32_t i;
    write_command(0x20);  // Horizontal DRAM Address
    write_data(0x0000);  // 0
    write_command(0x21);  // Vertical DRAM Address
    write_data(0);
    write_command(0x22); // write data to DRAM
    setup_data_16(c);
    CLR_CS_SET_CD_RD_WR;
    for(i=0;i<220*176;i++)
    {
    CLR_WR;
    SET_WR;
    }
}
2 Likes

I also now realise there’s a fillScreen function, which is the version that writes to the buffer, while the fillLCD function is the one that writes directly to the screen.

I got a bit confused because they don’t follow the naming scheme of the other ‘direct’ functions (and I didn’t read the comments properly).