DirectShow DirectShow 레퍼런스 인터페이스 IVideoWindow put_FullScreenMode [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
put_FullScreenMode 메서드는, 풀 스크린 비디오 렌더링을 유효 또는 무효로 한다.
구문
HRESULT put_FullScreenMode(
long FullScreenMode
);
파라미터
FullScreenMode
[in] 풀 스크린 모드를 유효하게 할까 무효로 하는지를 지정하는 불리언 값. 다음의 몇개의 값을 지정한다.
값 | 설명 |
OATRUE | 풀 스크린 모드로 전환한다. |
OAFALSE | 풀 스크린 모드를 무효로 한다 (디폴트). |
반환값
다음의 몇개의 값을 돌려준다.
값 | 설명 |
E_NOTIMPL | 필터가 풀 스크린 모드를 지원 하고 있지 않다. |
S_FALSE | 이미 요구된 모드가 되어 있다. |
S_OK | 성공. |
VFW_E_NO_FULLSCREEN | 풀 스크린 모드를 지원 하는 필터가 발견되지 않았다. |
주의
비디오 렌더러에 따라서는, 풀 스크린 모드에의 변환은 애플리케이션으로 그래프가 실행 또는 포즈 될 때까지 표시되지 않는 경우가 있다. 풀 스크린 모드에서는, 사용자가 애플리케이션과는 별도로 (예를 들어 Alt + Tab 키를 사용해) 변환을 실시하면, 필터 그래프 매니저는 EC_FULLSCREEN_LOST 이벤트를 송신한다.
이하의 주의에서는, 필터 그래프 매니저가 풀 스크린 모드를 처리 하는 방법에 대해 설명한다. 애플리케이션 개발자는 이 정보를 무시해도 아마 문제는 없을 것이지만, 커스텀 비디오 렌더러를 기술하는 경우는 유용한 일도 있다.
애플리케이션이 풀 스크린 모드에 바뀌면 필터 그래프 매니저는 가장 효율적으로 기능하는 비디오 렌더러를 검색한다. 검색하는 우선 순위는 다음과 같다.
최초의 옵션에서는, 필터 그래프 매니저는 그래프내의 모든 비디오 렌더러로 IVideoWindow::get_FullScreenMode 를 호출한다. 대부분의 렌더러는 E_NOTIMPL 를 돌려주지만, 이것은 필터가 풀 스크린 모드를 네이티브로 지원 하고 있지 않는 것을 나타낸다. E_NOTIMPL 와 동일하지 "않은" 값을 돌려주는 렌더러가 있으면, 필터 그래프 매니저는 그 렌더러를 사용한다.
2 번째의 옵션에서는, 필터 그래프 매니저는 그래프내의 모든 비디오 렌더러로 IVideoWindow::GetMaxIdealImageSize 및 GetMinIdealImageSize 를 호출한다. 표시 사이즈가 보고된 필터의 범위내에 들어가는 경우, 필터는 퍼포먼스를 큰폭으로 저하시키는 일 없이 비디오를 확대 축소할 수 있는 것을 나타내고 있다.
주 : 그래프가 정지 하면, 필터 그래프 매니저는 각 렌더러를 포즈 하고 나서 이러한 메서드를 호출한다. 이것에 의해, 렌더러는 필요한 리소스를 초기화할 수 있다. 왜냐하면, 렌더러의 상당수는 정지하고 있을 때는 이러한 값을 판단할 수 없기 때문에이다.
낡은 하드웨어 이외는, 보통 2 번째의 옵션이 성공한다. 3 번째의 옵션은, 풀 스크린 렌더링 필터를 사용하는 것으로, 필요에 따라서 그래프에 그 필터를 추가한다. 4 번째의 옵션은, 그래프내에서 IVideoWindow 를 지원 하는 최초의 렌더러를 검색해, 퍼포먼스와는 관계되어 없게 비디오를 확대 축소하는 것만으로 있다.
참조