Raspberry Pi上的SDL2无法创建渲染器:“已创建OpenGL上下文”

时间:2014-09-09 02:00:46

标签: opengl-es raspberry-pi sdl-2

我使用本教程中的资源在raspberry pi上设置SDL2:https://www.youtube.com/watch?v=Yo7hO7GZ-ug我让它编译并运行。但是当它到达需要设置渲染器的点时,我得到一个NULL返回值。

在这个问题上接受的答案表明错误“已经创建的OpenGL上下文”是欺骗性的,并且根本没有创建OpenGL上下文。这意味着我的OpenGL被破坏了。 Raspberry Pi使用OpenGL ES,据我所知,SDL足够聪明,可以使用GLES代替GL吗?我想知道是否有其他人遇到过这种问题,以及是否有一种已知方法可以解决这个问题。

这是我的代码:

#include <SDL2/SDL.h>

const char* WINDOW_TITLE = "steel";

int main(int argc, char** argv) {

    SDL_Window* window = NULL;
    SDL_Renderer* renderer = NULL;
    SDL_Init(SDL_INIT_EVERYTHING);

    // Setup window
    window = SDL_CreateWindow(
                          WINDOW_TITLE, //Title
                          SDL_WINDOWPOS_CENTERED, // x pos
                          SDL_WINDOWPOS_CENTERED, // y pos
                          0, //width
                          0, //height
                          SDL_WINDOW_FULLSCREEN_DESKTOP);


    if (window == NULL) {
        printf("Could not create window %s\n", SDL_GetError());
        return 1;
    }

    // Setup renderer
    renderer = SDL_CreateRenderer(window, 0, 0);

    if (renderer == NULL) {
        printf("Could not create renderer %s\n", SDL_GetError());
        return 1;
    }
}

1 个答案:

答案 0 :(得分:1)

根据SDL_CreateRenderer文档,您应该为其第二个参数指定-1,以请求支持您请求的标志的第一个渲染驱动程序。索引0处的那个可能不正确。