Bocsi, kérdeznék valamit...
A zc_bitmap.c
forrásában a struct _bm_t
data
tag-je uint8_t*
(L#14). A bm_write
függvényben innen olvasod be az r
, g
, b
változókat (L#112). Ha a data
uint8_t*
, akkor miért kell az onnan beolvasott értékeket levalidálni, hogy nagyobbak-e, mint 255?
Sz*rk: Másik kérdés: a koordinátákból az indexeknek a folyton újraszámolgatása helyett nem volna gyorsabb a sorfolytonos írás és olvasás, az alpha skippelésével? Valami ilyesmire gondolok:
int s_index = 0;
int d_index = 0;
int c = h * w;
for (int i = 0; i < c; i++)
{
uint8_t r = bm->data[s_index++];
uint8_t g = bm->data[s_index++];
img[d_index++] = bm->data[s_index++]; // b
img[d_index++] = g;
img[d_index++] = r;
++s_index;
}