2017-09-27 79 views
0

我想用renderdoc調試我的程序。我使用SDL_GL標準函數創建了我的上下文。使用render doc運行應用程序時出現此錯誤。RenderDOC和SDL2

「通過CreateCont只有OpenGL的3.2+環境不會創建OpenGL上下文都支持」

我加入這個說法我創建了上下文之前:

SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); 

這應該強制核心配置文件,但該錯誤仍然存​​在。

我在這裏做錯了什麼?

----- -----編輯

即使強迫版本3.2(需要準確的版本)的東西還是投訴後。

這裏是我的窗口類的初始化塊:

//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

顯示完整的上下文初始化代碼。你使用哪個版本? – BDL

+0

@BDL我添加了整個init塊和一些額外的信息 – MoustacheSpy

+0

你忘了設置次要版本。最有可能你是一個3.0環境 – BDL

回答

3

的錯誤信息是非常明確的:你的程序不使用的OpenGL 3.2+環境。

由於您只請求特定的主要版本,但不是次要版本,因此最有可能獲得3.0上下文。要解決該問題,請添加

SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); 
+0

非常好的答案和非常好的人!解決了我的問題! – MoustacheSpy