2016-12-27 19 views
5

현재 Windows 10에서 Ubuntu Terminal을 실행하고있어 문제가 있습니다. 또한 XMing을 X 서버로 설치했습니다 (Qemu, 기타...). 그리고이 SDL2 프로그램을 실행하려고합니다.SDL2 일치하는 GLX 영상을 찾을 수 없어 창을 생성 할 수 없습니다.

Can't create window: Couldn't find matching GLX visual 
done 

나는이 GLX 문제를 해결하지만 방법을 검색 할 수 없습니다 시도 : 그래서 내가 MAIN.CPP이 있습니다

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

#include <SDL2/SDL.h> 
#include <GL/gl.h> 

int main(int argc, char *argv[]) 
{ 
     int final_status = 1; 
     SDL_Window *window; 
     SDL_GLContext openGL_context; 

     if (SDL_Init(SDL_INIT_VIDEO)) { 
       fprintf(stderr, "Unable to initialize SDL: %s\n", 
         SDL_GetError()); 
       return 1; 
     } 
     window = SDL_CreateWindow("My Demo", SDL_WINDOWPOS_CENTERED, 
            SDL_WINDOWPOS_CENTERED, 640, 480, 
            SDL_WINDOW_OPENGL); 
     if (!window) { 
       fprintf(stderr, "Can't create window: %s\n", SDL_GetError()); 
       goto finished; 
     } 

     openGL_context = SDL_GL_CreateContext(window); 
     if (!openGL_context) { 
       fprintf(stderr, "Can't create openGL context: %s\n", 
         SDL_GetError()); 
       goto close_window; 
     } 

     /* drawing code removed */ 

     final_status = 0; 
     SDL_GL_DeleteContext(openGL_context); 
close_window: 
     SDL_DestroyWindow(window); 
finished: 
     SDL_Quit(); 
     fprintf(stdout, "done\n"); 
     fflush(stdout); 
     return final_status; 
} 

그리고 내가 g++ main.cpp -lSDL2를 실행할 때 다음, 나는이 출력을 얻을 그것을위한 해결책을 찾는 것처럼 보입니다. 도와 주시면 대단히 감사하겠습니다!

+0

내가 심하게을 통해 그것을 실행하려고했던 것처럼 나는, 사용할 수있는 충분한 그래픽 드라이버 또는 장치를하지 않기 때문에 발생 전에 한 번이 오류가 있었다 : 당신은 또한 glxinfo에서 시각적 아이디로 영상을 하드 코딩 시도 할 수 있습니다 구성된 가상 컴퓨터. 미안하지만 나는 더 구체적 일 수 없다. – ygrichman

+0

@ygrichman 흠 ... 음, 안녕하세요 세계 앱입니다. 좋은 그래픽 카드를 가지고 있다고 생각합니다. 그리고 이것은 Wsl이므로 Windows가 아니라 가상입니다. – amanuel2

답변

6

glxinfo을 실행하여 GLX가 올바르게 설치되었는지 확인하십시오. 하단에는 지원되는 비주얼의 목록이 있습니다. 여기에 내는 다음과 같습니다

1 GLX Visuals 
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav 
    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat 
---------------------------------------------------------------------------- 
0x022 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None 

는 SDL2 프로그램을 실행하기 전에 다음을 실행 해보십시오 :

export SDL_VIDEO_X11_VISUALID= 

이 시각을 찾기 위해 다른 코드 경로를 아래로 이동 SDL됩니다.

export SDL_VIDEO_X11_VISUALID=0x022