SDL_SetVideoMode не отображает окно - PullRequest
0 голосов
/ 10 декабря 2011

У меня такое ощущение, что я пытался скомпилировать SDL 1.3 из исходного кода, а затем установил SDL 1.2 из репозиториев Ubuntu.

Тем не менее я попытался удалить заголовки SDL 1.3 (по умолчанию расположенные в usr/local/include) и включить необходимые пути libs / include в мой файл qmake для компоновщика, но он все еще не отображается ...

Таким образом, я что-то не так делаю?

Вот мой код.

Метод, который должен создать окно

bool CApp::onInit() {

    if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
        return false;
    }

    bool surf_displayIsNull = ((this->surf_display = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF)) == NULL);

    if (surf_displayIsNull) {
        return false;
    }

    return true;
}

код, который его называет

int CApp::onExecute() {

    if (onInit() == false) {
        return -1;
    }

    SDL_Event event;

    while(running) {
        while(SDL_PollEvent(&event)) {
            onEvent(&event);
        }

        onLoop();
        onRender();
    }

    onCleanup();

    return 0;
}

Мой файл qmake

SOURCES += \
    main.cpp \
    capp.cpp \
    capp_oninit.cpp \
    capp_onevent.cpp \
    capp_oncleanup.cpp \
    capp_onloop.cpp \
    capp_onrender.cpp

LIBS += -L/usr/lib -lSDL -lSDLmain

INCLUDEPATH = usr/include

HEADERS += \
    capp.h

Обновление

Попробовал следующее, как это было предложено кем-то, однако это не сработало.

this->surf_display = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);

    if (this->surf_display == NULL) {
        return false;
    }
...