SDL: IMG_load возвращает неверные данные
Проблема возникает из-за функции "IMG_load" SDL_image с языком C. Это не вызывает ошибок во время выполнения, но когда дело доходит до строки
SDL_Surface* image1 = IMG_Load("image.bmp");
функция возвращает данные, которые я не могу использовать: например, SDL_BlitSurface(image1, NULL, screen, &position)
не буду ничего делать Тем не менее, он отлично работает при использовании функции SDL_LoadBMP.
Я использовал отладчик, чтобы попытаться понять разницу между данными, возвращаемыми двумя функциями:
Вот что возвращает IMG_Load("image.bmp"):
{ //Doesn't work
flags = 0,
format = 0x3c07c0,
w = 40,
h = 40,
pitch = 120,
pixels = 0x3c07f0,
offset = 0,
hwdata = 0x0,
clip_rect = {
x = 0,
y = 0,
w = 0,
h = 0
},
unused1 = 0,
locked = 40,
map = 0x28,
format_version = 3939000,
refcount = 1
}
И вот что возвращает SDL_LoadBMP("image.bmp"):
{ //Works fine
flags = 0,
hwdata = 0x0,
clip_rect = {
x = 0,
y = 0,
w = 40,
h = 40
},
unused1 = 0,
locked = 0,
map = 0x3458e8,
format_version = 7,
refcount = 1
}
(Обратите внимание, что изображение такое же, и это квадрат 40x40px).
Почему я не могу использовать SDL_BlitSurface на SDL_Surface, возвращаемом функцией IMG_Load?
редактировать: вы также должны знать, что это первый раз, когда функция из пакета SDL_Image используется в программе.