2017-09-27 12 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