2010-04-26 5 views
1

나는 실제로 응용 프로그램에서 돔에 이미지를 표시하기 위해 작업하고 있습니다.2 개의 다른 화면에서 2 개의 창 전체 화면

돔 투영 시스템은 nvidia TwinView 시스템과 함께 GentoO Linux 및 KDE를 실행하는 두 대의 프로젝터와 PC로 구성됩니다.

여기부터는 SDL을 사용하여 전체 화면 창을 표시했으며 두 화면에 내 앱을 표시합니다.

그러나 나는 각 프로젝터에 하나씩 두 개의 서로 다른 이미지를 투사해야한다고 생각했습니다.

그래서 내가 전체 화면 창을 첫 번째 화면 (프로젝터)에 표시하고 두 번째 화면을 다른 화면으로 표시하는 솔루션을 찾습니다. 그러나 SDL 전체 화면은 창을 두 개의 화면으로 확장합니다.

모든 소형 서체를 사용할 수 있습니다 (조명이 작고 무료이기 때문에 작은 "API"로 포장하므로). 또는 디스플레이 설정을 변경하십시오. BTW는 SDL은 하나 개의 창을 ^^ "관리하기 때문에, OpenGL을 지원을 위해 좋을 것이다

+0

"큰 화면"에뮬레이션을 사용하고 있습니까 아니면 각각에 두 개의 별도 X 서버를 사용하고 있습니까? – ereOn

+0

트윈 뷰는 큰 화면을 에뮬레이션하지만 두 개의 별도 X 피벗을 시도 할 수 있다고 생각합니다. 하지만 이걸로 바탕 화면을 관리 할 수 ​​있고 하나에 응용 프로그램을 시작하는 각각에 창을 가져올 수 있을까요? – sirithang

+0

내 대답보기. 내가 제안한 것을 사용하여 한 화면에서 다른 화면으로 앱을 가져올 수 있을지는 의문입니다. – ereOn

답변

0

내 생각 엔 그 SDL (또는 오히려 OpenGL을, 또는 무엇이든 그것은 그래픽을 표시 뒤에 사용)입니다 만이 믿고 (만 화면을 가지고 있기 때문에) 이해가되지 않는 다른 화면에 두 개의 서로 다른 일을 표시 하나의 큰 화면. ​​따라서

.

어쩌면 내가 틀렸다,하지만 당신은 시도해야 별도의 X-desktop을 사용하는 방법 하기 위해서. 저는 지금 리눅스 상자에 있지 않아서 최대한 많은 도움을 줄 수는 없지만 잘 기억한다면 X 서버가 두 가지가 아닌 두 개의 별개 데스크탑을 가질 수있는 옵션이있었습니다.

또 다른 "해결책은"당신의 화면의 좌표/경계를 계산하고 하나의 에뮬레이트 화면에 교묘하게 일을 표시하지만,하는 것입니다 :

  1. 그것은 내가 '돈
  2. 경향이 추한
  3. 오류입니다 좋아해.
+0

귀하의 의견을 참고하십시오 : 특정 디스플레이에서 응용 프로그램을 시작하려면 응용 프로그램을 시작하기 전에 명령 행에서 export DISPLAY = : 0.1 (또는 원하는 디스플레이 번호)를 사용하십시오. – ereOn

+0

두 개의 다른 바탕 화면에 대해 네, 가능하다고 생각하지만 다시 SDL은 하나의 창만 만들 수 있습니다. 그래서 다른 창에서 전체 화면으로 두 개의 창을 만들 수는 없습니다. OpenGl 렌더링을 지원하거나 이미지를 표시 할 수있는 librairy를 easly 많이 표시 할 수 있습니까 (픽셀 배열을 만들 수 있음). – sirithang

+0

직접 * OpenGL *을 사용하여 그렇게 할 수 있다고 생각합니다. 그러나 나는 놀랍다는 것을 인정해야합니다. * SDL *은 기본적으로 그러한 일을 할 수 없습니다. 또한 http://www.ogre3d.org/에서 살펴볼 수도 있지만 달성하고자하는 것이 무엇인지 알지 못합니다. – ereOn

1

나는 당신에게 해결책이 있다고 생각한다. 'xinerama'USE 플래그와 관련된 모든 것을 표시해야합니다. 그런 다음 X 설정에서 메타 모드를 설정하거나 각 화면에 대해 nvidia-settings을 사용하십시오. 이렇게하면 모니터가 드라이버의 화면처럼 보이지만 창 관리자에게 독립된 화면 경계를 알립니다. 이제 창에서 창으로 앞뒤로 드래그 할 수 있으며, 각각 독립적 인 전체 화면을 만들 수 있습니다. 예!

참고 : Gnome에서 테스트했지만 KDE는 아직 테스트하지 않았습니다.

행운을 빌어 요!

편집 : 아직 메타 모드를 인식하는 응용 프로그램을 얻는 방법을 알아야한다는 것을 잊어 버렸습니다. : p

1

멋진 트릭이지만 실제로는 해결책이 아닙니다.

대신 SDL 1.3 (1.2에 구현되지 않음)을 사용해야하고 SDL 작업 출력을 원하는 화면에 표시 할 수 있도록 SDL_SelectVideoDisplay (index_of_mmonitor) (일반적으로 첫 번째 모니터는 0, 두 번째 모니터는 1)를 호출해야합니다).

감사합니다.

관련 문제