В настоящее время я пробую некоторые вещи, используя манипуляции с пикселями, и я хотел бы установить формат пикселя SDL_Surface. Проблема в том, что я загружаю изображение с SDL_image.h. Поэтому я должен создать текстуру из поверхности, как это:
surface = IMG_Load(filePath);
texture = SDL_CreateTextureFromSurface(renderer, surface);
Поэтому я не могу использовать следующую функцию, которую я хотел бы, или я могу?
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, 640, 480);
Дело в том, что я хочу настроить SDL_PixelFormat так, чтобы он мог возиться с пикселями. Как я могу сделать это и создать текстуру на основе поверхности?
API SDL2 обеспечивает функцию SDL_ConvertSurface
:
SDL_Surface* SDL_ConvertSurface(SDL_Surface* src,
const SDL_PixelFormat* fmt,
Uint32 flags)
Вы должны быть в состоянии сделать
surface = IMG_Load(filePath);
// Call SDL_ConvertSurface to set the pixel format of the surface you have created.
texture = SDL_CreateTextureFromSurface(renderer, surface);