DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 CreateAdditionalSwapChain   [목차열람] [주소복사] [슬롯비우기]
IDirect3DDevice9::CreateAdditionalSwapChain 메서드
 
Microsoft DirectX 9.0

IDirect3DDevice9::CreateAdditionalSwapChain 메서드


복수의 뷰를 렌더링하기 위한 추가 스왑 체인을 생성 한다.

구문

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_OUTOFVIDEOMEMORYMicrosoft® Direct3D® 가 처리를 실시하는데 충분한 디스플레이 메모리가 없다.
E_OUTOFMEMORYDirect3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.


주의

Microsoft DirectX® 9.0 의 Direct3D 는 장치의 프로퍼티로서 1 개의 스왑 체인을 가지고 있기 (위해)때문에, 각 장치에 대해서, 항상 적어도 1 개의 스왑 체인 (비명시적인 스왑 체인)이 존재한다.

어떠한 장치에서도, 지원 할 수 있는 풀 스크린 스왑 체인은 1 개 뿐이다.

윈도우 모드의 백 버퍼 포맷에 대해서는,IDirect3D9::CreateDevice ,IDirect3DDevice9::Reset , 및 CreateAdditionalSwapChain 의 호출로 D3DFMT_UNKNOWN 를 지정할 수 있다. 즉, 애플리케이션에서는, 윈도우 모드에 대한 CreateDevice 를 호출하기 전에, 현재의 데스크탑 포맷을 문의할 필요는 없다. 풀 스크린 모드에 대해서는, 백 버퍼 포맷을 지정할 필요가 있다.

참조

윈도우 모드의 멀티 뷰


© 2002 Microsoft Corporation. All rights reserved.
↑TOP