#c #sdl
#c #sdl
Вопрос:
В моем коде я просто хочу отобразить png-изображение на экране, используя SDL 1.2.15, без масштабирования. Однако изображение, отображаемое на экране с помощью приведенного ниже кода, всегда получается размытым, а цвета не отображаются (см. прикрепленное изображение). Что я делаю не так?
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(400, 240, 24, SDL_HWSURFACE);
SDL_Surface *image = IMG_Load ( "/image.png" );
SDL_BlitSurface ( image, NULL, screen, NULL );
SDL_Flip(screen);
На рисунке ниже показано исходное изображение в сером поле (увеличенное — каждая черная полоса имеет ширину в один пиксель, исходные размеры 11×11 пикселей) слева и то, что отображается на экране после выполнения приведенного выше кода справа.
Комментарии:
1. Есть ли какая-то конкретная причина, по которой вы используете SDL1 вместо SDL2?
2. Да — SDL2 не был перенесен на платформу, для которой я пишу код
3. Что это за платформа?
4. Платформа — Nintendo 3DS
5. Вы не проверяете возвращаемые значения
BlitSurface
илиFlip
на наличие ошибок, так что это первое, что нужно сделать. Также убедитесь, что ваша версия SDL_image верна.
Ответ №1:
Проблема была специфична для платформы реализации SDL и, следовательно, недопустима для SDL в целом