I tried, but there is just too much code and this is incomplete.
Please try something much simpler first, not reading from SD(?), writing to QSPI flash(?), reading from there and so on.
PS.- the images are ASTC_8x8 and it is a 88x72 image. I pass the .raw file that is generated from the several that it generates.
Using the .raw file is correct.
So the files should have 1584 bytes.
Just add the array to the .c file as a first step.
const uint8_t test_icon [1584] =
{
.....
};
Write it to RAM_G in console_tft_init():
EVE_mem_write(ramg_test_icon_address, test_icon, sizeof(test_icon));
Display it:
EVE_add_cmd(COLOR_RGB(255u, 255u, 255u), 4u);
EVE_add_cmd(BEGIN(EVE_BITMAPS), 4u);
EVE_add_cmd(CMD_SETBITMAP(ramg_test_icon_address, EVE_ASTC_8x8, 88u, 72u), 16u);
EVE_add_cmd(VERTEX2F((unsigned long)(100 * 16), (unsigned long)(100 * 16) ), 4u);
EVE_add_cmd(END(), 4u);
Yes, that "EVE_add_cmd(CMD_SETBITMAP(" is a wild guess, I am not familiar with the library you are using.
But it really should include a way to use CMD_SETBITMAP.
Which library is this? The "4u" at the end really looks inconveniant.
Side-Note, does your VERTEX2F really need uint32_t? The coordinates are 15 bit wide and signed.
My lib uses int16_t for VERTEX2F: void EVE_vertex2f(const int16_t xc0, const int16_t yc0);
In my library this would look like this:
EVE_color_rgb(WHITE);
EVE_begin(EVE_BITMAPS);
EVE_cmd_setbitmap(MEM_LOGO, EVE_ASTC_8X8, 88U, 72U);
EVE_vertex2f(100U*16U, 100U*16U);
EVE_end();
CMD_SETBITMAP sets bitmap source, size and layout_h and layout.
The only time you do not want to use it is when you need to not set BITMAP_SIZE filter/wrapx/wrapy to NEAREST/BORDER/BORDER.
But even then you can send a BITMAP_SIZE with the preferred values after CMD_BITMAP, at the cost of 4 bytes extra in the display-list.
At this point I am not sure anymore what "linestride" was, something, something, pixel. :-)
I have not been using BITMAP_LAYOUT for years now as FT81x / BT81x support CMD_SETBITMAP.