SDL窗口无法正确打开

时间:2017-05-24 12:43:59

标签: c sdl

我正在学习使用SDL库。然而,在我遇到的许多问题中,有一个我在互联网上找不到解决方案。我使用SDL_SetVideoMode设置了视频模式特性,但是在运行程序时没有出现新窗口。唯一发生的事情是我的终端显示一个奇怪的模式,但看起来不像我应该拥有的窗口,即使它有,它打开一个新窗口。这发生在我试图运行程序的shell窗口中。

以下是该计划:

#include <stdlib.h>
#include <SDL/SDL.h>

void    pause(void)
{
    int     on = 1;
    SDL_Event event;

    while (on == 1)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                on = 0;
        }
    }
}

int     main(void)
{
    if (SDL_Init(SDL_INIT_VIDEO) == -1)
        return EXIT_FAILURE;
    else
    {
        SDL_SetVideoMode(1024, 576, 32, SDL_HWSURFACE);
        SDL_WM_SetCaption("SDL TEST", NULL);
        pause();
        SDL_Quit();
    }
    return EXIT_SUCCESS;
}

我使用的是Makefile,这就是它内部的内容:

FLAGS=-Wall -Wextra -Werror
SDLFLAG=-lSDL
NAME=sdl1

all: ${NAME} clean

${NAME}: ${NAME}.o
    gcc -o ${NAME} ${NAME}.o ${FLAGS} ${SDLFLAG}

${NAME}.o: ${NAME}.c
    gcc -o ${NAME}.o -c ${NAME}.c ${FLAGS} ${SDLFLAG}

clean:
    rm -rf *.o

mrproper: clean
    rm -rf ${NAME}

运行程序的结果如下: enter image description here

发生了什么事?为什么我没有一个名为“SDL TEST”的新的空窗口?

1 个答案:

答案 0 :(得分:1)

看起来SDL库试图使用libcaca

显示您的窗口

首先尝试,如果您可以通过在shell中执行xterm来打开与XServer的连接。如果可行,请尝试使用

启动它
SDL_VIDEODRIVER=x11 ./sdl1

强制使用x11视频驱动程序,看看它是否正常工作。