RenderDOC и SDL2

Я хочу отладить свою программу с помощью renderdoc. Я создал свой контекст с помощью стандартной функции SDL_GL. Я получаю эту ошибку при запуске приложения с помощью Render Doc.

"OpenGL. Контекст не создается с помощью CreateCont Only. Поддерживаются контексты OpenGL 3.2+".

Я добавил этот аргумент до того, как создал свой контекст:

SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);

Это должно заставить профиль ядра, но ошибка все еще там.

Что я здесь не так делаю?

-----Редактировать-----

Даже после форсирования версии 3.2 (точная версия требуется) вещь все еще жалуется.

Вот блок init моего класса окна:

//System init


if(!SDL_WasInit(SDL_INIT_EVERYTHING))
    SDL_Init(SDL_INIT_EVERYTHING);

this->SDL_window = SDL_CreateWindow(title,10,10,w,h,SDL_WINDOW_OPENGL);
if(this->SDL_window!=NULL)
{
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);

    this->context = SDL_GL_CreateContext(SDL_window);
    if(!this->context)
    {
        SDL_DestroyWindow(SDL_window);
        COUT<<"FAILED TO CREATE CONTEXT. PRINTING ERROR AND THROWING EXCEPTION"<<ENDL;
        COUT<<SDL_GetError()<<ENDL;
        throw "ENGINE::WINDOW::GLCONTEXTERR";
    }
        glewExperimental = GL_TRUE;
        glewInit();
}
else
{
    COUT<<"FAILED TO CREATE WINDOW. PRINTING ERROR AND THROWING EXCEPTION"<<ENDL;
    COUT<<SDL_GetError()<<ENDL;
    throw "ENGINE::WINDOW::SDLWINDOWERR";
}

1 ответ

Решение

Сообщение об ошибке очень ясно: ваша программа не использует контекст OpenGL 3.2+.

Поскольку вы запрашиваете только определенную основную версию, но не вспомогательную версию, вы, скорее всего, получите контекст 3.0. Для решения проблемы добавьте

SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
Другие вопросы по тегам