2016-11-08 5 views
1

저는 HDK 화면에 전체 화면 창을 통해 OSVR HDK에 표시되는 WPF + SharpDX Windows 응용 프로그램이 있습니다. 이 설정은 잘 작동하지만 사용자가 HDK가 어느 화면에 있는지 알려주도록 요구합니다.OSVR 헤드셋을 감지하는 방법은 무엇입니까?

자동으로 감지되었지만 화면의 헤드셋에 API가 표시되지 않았습니다.

현재 나는 창에 렌더링 :

var bounds = dxgiDevice.Adapter.Outputs[_selectedOutput].Description.DesktopBounds; 
form.DesktopBounds = new System.Drawing.Rectangle(
    bounds.X, bounds.Y, bounds.Width, bounds.Height); 

그리고 _selectedOutput은 내가 찾는 일이다.

현재로서는 직접 모드를 지원하지 않으며 Managed-OSVR을 사용하고 있습니다. 응용 프로그램은 Windows 8/8.1/10에서 실행됩니다.

답변

1

OSVR 용으로 코딩 한 이후로 시간이 지났지 만, 내가 기억하는 것은 다음과 같습니다. 확장 모드에서 실행중인 경우 OSVR은 일반 디스플레이로 처리됩니다. 다른 화면처럼 다시 정렬 할 수 있습니다. 출력 위치는 OSVR 구성 파일에서 구성 할 수 있습니다.

osvrContext.getRenderManagerConfig().getXPosition() 
osvrContext.getRenderManagerConfig().getYPosition() 
osvrContext.getDisplayParameters().getResolution(0).getWidth() 
osvrContext.getDisplayParameters().getResolution(0).getHeight() 

명확히하려면 : 나는 나의 창을 설정하는 위치와 크기를 검색하기 위해 다음 (자바)를 사용하면 확장 모드에서 디스플레이의 ID를 검색 할 수 있는지 모르겠어요. 내가 아는 바로는 데스크톱의 위치와 크기로 정의됩니다. 도움이되기를 바랍니다.

+0

Unfortunatelly, Managed-OSVR에서'osvrContext' 나'getRenderManagerConfig' 같은 것이 없습니다. dimmensions를 반환하는 모든 메서드는 폭/높이 중 하나이거나 한쪽 눈에만 경계를 반환합니다. 언급 한 코드는 공식 Java API에서 가져온 코드입니다.하지만 C# (Managed) 코드에서 해당 코드를 찾을 수 없습니다. –

+0

아니요, 제 자신의 Java 래퍼에서 가져온 것입니다. 공식 자바 API가 있었으면 좋겠다.) – reden

+1

해킹은 다음을 찾으면된다. 'OSVR \ OSVR-Core \ bin \ 당신이 사용하고있는 설정.'을 찾아야한다. 찾기 : "xPosition": 1920, "yPosition": 0 그리고 창을 올바른 위치에 표시하는 데 사용합니다. – reden