2014-10-12 73 views
2

我试图创造做在SDL2渲染:SDL_CreateRenderer创建无效渲染

SDL_Init(SDL_INIT_VIDEO); 
SDL_Window * w = SDL_CreateWindow("Window", 0, 0, 500, 500 0); 
SDL_Renderer * r = SDL_CreateRenderer(w, -1, 0); 

但SDL_CreateRenderer后我打印SDL_GetError(),它显示:

无效渲染

渲染时某些东西渲染不好(这是游戏的一部分)。在Windows的同一台计算机上,它运行良好,并且不显示“Invalid renderer”错误。

我第一次下载SDL2 apt-get安装,但我后来从源代码编译它,我仍然有同样的问题。

我不确定它是否重要,但我使用gnome shell运行Ubuntu 14.04。我有一个ati显卡,我正在使用xserver-xorg驱动程序。我使用的是fglrx,但SDL有另一个问题,所以我改变了它。

任何有关可能发生的事情的线索或如何解决这个问题?

+0

试试这个:'SDL_Renderer * r = SDL_CreateRenderer(w,-1,SDL_RENDERER_SOFTWARE);' – 2014-10-15 11:57:41

+0

这也没有帮助。错误仍然显示,但显然不好的问题显然没有与此有关。这是因为图像缓冲区在使用之前未被清理。在Windows中,它没有清理缓冲区工作正常。不知道为什么。 – 2014-10-26 23:32:52

回答

0

糟糕的渲染是因为缓冲区在使用前未被清理。我认为它与SDL_CreateRenderer有关,因为它在linux中显示错误,而不是在Ubuntu中,但显然它没有任何关系。