나는 내 첫 번째 시도가 (ImageMagick를에서) xwd
또는 import
를 사용하여 창을 캡처했다X에서 OpenGL을 사용하는 응용 프로그램의 보이지 않는 창에서 스크린 샷을 얻으려면 어떻게해야합니까?
X를 아래에 표시되지 윈도우의 스크린 샷을 만들려고 노력하고 있습니다. 불행히도 창문이 다른 창 아래에 있으면 숨겨진 부분이 검은 색입니다. 더 나쁜 것은 윈도우가 현재 데스크탑에 없을 때 BadMatch
오류가 발생한다는 것입니다.
다음 생각은이 응용 프로그램에 대해 새로운 X 인스턴스를 만드는 Xnest를 사용하는 것이고 항상 맨 위에있게됩니다. 그리고 나는 다른 문제를 겪는다. Xnest는 OpenGL을 지원하지 않습니다.
구글 검색 중 일부는 OpenGL을 지원하는 [Xephyr] [1]을 발견하지만 하드웨어가 가속화되지 않아 내 CPU를 죽이기 때문에 악성 코드가되지 않습니다.
Xvfb도 CPU를 사용하여 OpenGL을 렌더링합니다. 유일한 것은 내가 어떻게 든 pixbuf에 창을 렌더링하기 위해 내 X 서버를 강제로 Xlib를 사용하는 것입니다 생각할 수있는 왼쪽
OpenGL vendor string: Mesa Project OpenGL renderer string: Software Rasterizer OpenGL version string: 2.1 Mesa 7.8.2 OpenGL shading language version string: 1.20
: 아래 glxinfo
의 출력의 일부입니다. 불행히도 Xlib에 대한 지식이 거의 없습니다.
내 질문은 어떻게 X에서 OpenGL을 사용하는 응용 프로그램의 보이지 않는 창에서 스크린 샷을 얻을 수 있습니까?
이제는 [Python-Xlib] [2] 및 PIL을 사용하여 스크린 샷을 만들 수 있습니다. 파이썬이나 C를 사용하는 다른 솔루션도 사용할 수 있습니다.
GL 응용 프로그램에서 glReadPixels를 사용하는 것의 문제점은 무엇입니까? –
소스 코드가 없습니다. – elmo