At a cursory glance this looks good.
Unfortunately, however cool this is, I am unable to take on maintenance for a fringe-use-case backend.
I suggest you host this on its own repository, e.g. dakotath/imgui_impl_gx, just the two files + README, and I will happily sadd suitable links from wiki and other places.
Also as per #9400, I am open to discussing how to avoid ABGR/RGBA conversion, which you may be able to avoid entirely by defining IM_COL32_R_SHIFT, IM_COL32_G_SHIFT, IM_COL32_B_SHIFT, IM_COL32_A_SHIFT, IM_COL32_A_MASK if deemed useful. But I would guess the current backend it's only used for infrequent texture updates and probably.
I was surprised by using an immediate mode graphics API aka GX_Begin(), GX_Position3f32() etc. instead of a full buffer copy but it seems like it is what maps to the HW for uploads, as per https://github.com/devkitPro/libogc/blob/959871c08ed80d1a63b258bc207218623ea1b0e5/gc/ogc/gx.h#L2122.
Hello Dakota,
At a cursory glance this looks good. Unfortunately, however cool this is, I am unable to take on maintenance for a fringe-use-case backend.
I suggest you host this on its own repository, e.g. dakotath/imgui_impl_gx, just the two files + README, and I will happily sadd suitable links from wiki and other places.
Also as per #9400, I am open to discussing how to avoid ABGR/RGBA conversion, which you may be able to avoid entirely by defining
IM_COL32_R_SHIFT,IM_COL32_G_SHIFT,IM_COL32_B_SHIFT,IM_COL32_A_SHIFT,IM_COL32_A_MASKif deemed useful. But I would guess the current backend it's only used for infrequent texture updates and probably. I was surprised by using an immediate mode graphics API akaGX_Begin(),GX_Position3f32()etc. instead of a full buffer copy but it seems like it is what maps to the HW for uploads, as per https://github.com/devkitPro/libogc/blob/959871c08ed80d1a63b258bc207218623ea1b0e5/gc/ogc/gx.h#L2122.