Niin, miten saa SDL:ssä muutettua rgb arvon hexaksi? Siis muuttaisin rgb:n hexaksi SDL_FillRect():iä varten. rgb on on erikseen r, g ja b sekä avaruus a Uint8 muodossa. Miten teen?
Bittisiirroilla:
Uint32 graphics_sdlcolor_to_uint32(SDL_Color *c) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN return (c->r << 24) + (c->g << 16) + (c->b << 8) + c->unused; #else return (c->unused << 24) + (c->b << 16) + (c->g << 8) + c->r; #endif }
Tai oikeammin:
SDL_MapRGBA(surface-jota-fillrectataan -> format, väri.r, väri.g, väri.b, väri.a);
Aihe on jo aika vanha, joten et voi enää vastata siihen.