Я пытался установить цвет пикселя, используя эту функцию:
void set_pixel(SDL_Surface *surface, SDL_Color, int x, int y)
{
Uint32 pixel= SDL_MapRGB(surface->format, color.r, color.g, color.b);
Uint32 *target_pixel = (Uint8 *) surface->pixels + y * surface->pitch +
x * sizeof *target_pixel;
*target_pixel = pixel;
}
К сожалению, это не работает, я думаю, это потому, что мой SDL_Surface имеет 24 бит на пиксель, а SDL_MapRGB возвращает Uint32. Должен ли я конвертировать SDL_Surface в 32 бит на пиксель или есть способ конвертировать пиксель Uint32 в 24 бит?