DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 CreateAdditionalSwapChain [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
복수의 뷰를 렌더링하기 위한 추가 스왑 체인을 생성 한다.
구문
HRESULT CreateAdditionalSwapChain(
D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain );
파라미터
- pPresentationParameters
- [in, out] 새로운 스왑 체인의 프레젠테이션 파라미터를 나타내는 D3DPRESENT_PARAMETERS 구조체의 포인터. NULL 를 지정할 수 없다.
이 메서드를 호출하면,D3DPRESENT_PARAMETERS 구조체의 멤버의 값이 바뀐다.
- BackBufferCount == 0 의 경우,CreateAdditionalSwapChain 를 호출하면 1 에 증가한다.
- 애플리케이션이 윈도우 모드의 경우로,BackBufferWidth 또는 BackBufferHeight == 0 의 경우,hwnd 의 클라이언트 영역의 폭과 높이로 설정된다.
- ppSwapChain
- [out, retval] 추가 스왑 체인을 나타내는 IDirect3DSwapChain9 인터페이스의 포인터 주소.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는, 다음의 몇개의 값을 돌려준다.
D3DERR_NOTAVAILABLE 이 장치는, 조회된 멀티 샘플 타입을 지원 하고 있지 않다.
D3DERR_DEVICELOST 장치는, 손실하고 있지만, 현재 리셋 할 수 없다. 따라서, 렌더링은 불가능하다. D3DERR_INVALIDCALL 메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다. D3DERR_OUTOFVIDEOMEMORY Microsoft® Direct3D® 가 처리를 실시하는데 충분한 디스플레이 메모리가 없다. E_OUTOFMEMORY Direct3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.
주의
Microsoft DirectX® 9.0 의 Direct3D 는 장치의 프로퍼티로서 1 개의 스왑 체인을 가지고 있기 (위해)때문에, 각 장치에 대해서, 항상 적어도 1 개의 스왑 체인 (비명시적인 스왑 체인)이 존재한다.
어떠한 장치에서도, 지원 할 수 있는 풀 스크린 스왑 체인은 1 개 뿐이다.
윈도우 모드의 백 버퍼 포맷에 대해서는,IDirect3D9::CreateDevice ,IDirect3DDevice9::Reset , 및 CreateAdditionalSwapChain 의 호출로 D3DFMT_UNKNOWN 를 지정할 수 있다. 즉, 애플리케이션에서는, 윈도우 모드에 대한 CreateDevice 를 호출하기 전에, 현재의 데스크탑 포맷을 문의할 필요는 없다. 풀 스크린 모드에 대해서는, 백 버퍼 포맷을 지정할 필요가 있다.
참조
윈도우 모드의 멀티 뷰