SDL_SetVideoMode不显示窗口

时间:2011-12-10 01:18:56

标签: c++ user-interface graphics sdl

我有一种感觉,因为我尝试从源代码编译SDL 1.3,然后从Ubuntu repos安装SDL 1.2。

仍然,我尝试删除SDL 1.3标头(默认情况下位于usr/local/include),并在链接器的qmake文件中包含必要的libs / include路径,但它仍然没有显示。 ..

因此,有什么我做错了吗?

这是我的代码。

应该创建窗口的方法

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;
    }

0 个答案:

没有答案