2017-09-27 9 views
0

Je veux déboguer mon programme avec renderdoc. J'ai créé mon contexte avec la fonction standard SDL_GL. Je reçois cette erreur lors de l'exécution de l'application en utilisant le rendu doc.RenderDOC et SDL2

«OpenGL contexte n'a pas été créé par CreateCont uniquement OpenGL les contextes de sont pris en charge »

j'ajouté cet argument avant que je crée mon contexte:

SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); 

Cela devrait forcer un profil de base, mais la l'erreur est toujours là.

Qu'est-ce que je fais mal ici?

----- ----- Modifier

Même après avoir forcé la version 3.2 (version exacte requise), la chose encore des plaintes.

Voici le bloc d'initialisation de ma classe de fenêtre:

//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"; 
} 
+0

Afficher le code d'initialisation complet du contexte. Quelle version utilisez-vous? – BDL

+0

@BDL J'ai ajouté tout le bloc init et quelques informations supplémentaires – MoustacheSpy

+0

Vous avez oublié de définir la version mineure. Très probablement, vous demandez un contexte 3.0 – BDL

Répondre

3

Le message d'erreur est très claire: Votre programme n'utilise pas OpenGL 3.2+ contexte.

Étant donné que vous ne demandez qu'une version majeure spécifique, mais pas une version mineure, vous obtenez très probablement un contexte 3.0. Pour résoudre le problème, ajoutez

SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); 
+0

Très bonne réponse et très bonne personne! J'ai résolu mon problème – MoustacheSpy