C ++ - SDL не работает - PullRequest
3 голосов
/ 08 июня 2010

Я пытался следовать этому руководству по основам отображения изображения с помощью SDL.Но когда я запускаю программу, она возвращает пустой экран.Изображение находится в правильных каталогах, но оно не отображается в программе.Я делаю что-то неправильно?Я бы очень хотел, чтобы SDL работал.

EDIT

Вот мой код:

#include <SDL/SDL.h>

using namespace std;

int main(int argc, char *argv[])
{
    SDL_Surface *hello;
    SDL_Surface *screen;
    SDL_Init(SDL_INIT_EVERYTHING);
    screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
    hello = SDL_LoadBMP("hello.bmp");
    SDL_BlitSurface(hello, NULL, screen, NULL);
    SDL_Flip(screen);
    SDL_Delay(2000);
    SDL_FreeSurface(hello);
    SDL_Quit();
    return 0;
}

Ответы [ 5 ]

2 голосов
/ 08 июня 2010

Используйте SDL_GetError (), чтобы выяснить, почему SDL_LoadBMP () не может загрузить ваше растровое изображение.Читать это тема тоже

1 голос
/ 12 апреля 2014

Вместо SDL_Flip(screen) попробуйте использовать SDL_UpdateRect(screen,0,0,0,0)

1 голос
/ 31 августа 2010

Я думал, что сказал, что исправил это несколько месяцев назад, кажется, что не сделал.Я перекомпилировал его снова, и это сработало, очень странно.

0 голосов
/ 09 января 2013

В строке: "hello = SDL_LoadBMP("hello.bmp");" попробуйте "/hello.bmp" вместо "hello.bmp".У меня была такая же проблема, но кажется, что при поиске помогает поставить косую черту ("/") перед именем файла и, следовательно, отрисовать изображение, даже если оно не находится в том же каталоге, что и программа.

Если вы используете Windows вместо "/hello.bmp", напишите "c://hello.bmp".Первый был для Mac.(:

РЕДАКТИРОВАТЬ: Забудьте об этом, я только что понял, что это на самом деле не работает, это работало для меня, так как у меня был файл в моей директории на диске.

0 голосов
/ 08 июня 2010

Убедитесь, что hello.bmp находится в вашем текущем каталоге, и что это читаемый и действительный файл BMP.

...