DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 구조체 D3DPRESENT_PARAMETERS   [목차열람] [주소복사] [슬롯비우기]
D3DPRESENT_PARAMETERS 구조체
 
Microsoft DirectX 9.0

D3DPRESENT_PARAMETERS 구조체


프레젠테이션 파라미터를 기술한다.

구문

typedef struct _D3DPRESENT_PARAMETERS_ {
    UINT BackBufferWidth, BackBufferHeight;
    D3DFORMAT BackBufferFormat;
    UINT BackBufferCount;
    D3DMULTISAMPLE_TYPE MultiSampleType;
    DWORD MultiSampleQuality;
    D3DSWAPEFFECT SwapEffect;
    HWND hDeviceWindow;
    BOOL Windowed;
    BOOL EnableAutoDepthStencil;
    D3DFORMAT AutoDepthStencilFormat;
    DWORD Flags;
    UINT FullScreen_RefreshRateInHz;
    UINT PresentationInterval;
} D3DPRESENT_PARAMETERS;

멤버

BackBufferWidth, BackBufferHeight

새로운 스왑 체인의 백 버퍼의 폭과 높이 (픽셀 단위). Windowed 가 FALSE (프레젠테이션은 풀 스크린)의 경우, 이러한 값은,IDirect3D9::EnumAdapterModes 에 의해 열거된 디스플레이 모드의 몇개의 폭 및 높이로 일치하고 있지 않으면 안 된다. Windowed 가 TRUE 로, 이러한 값중 한쪽이 0 의 경우는,hDeviceWindow (또는 hDeviceWindow 가 NULL 의 경우는 포커스 윈도우)의 클라이언트 영역에 대응한 넓이가 사용된다.

BackBufferFormat

백 버퍼의 포맷. 포맷의 더 자세한 정보는, 「D3DFORMAT 」를 참조할것. 이 값은,IDirect3D9::CheckDeviceType 로 검증된 렌더링 타겟의 포맷 중 하나가 아니면 안된다. 현재의 포맷은,IDirect3DDevice9::GetDisplayMode 를 사용해 취득할 수 있다.

실제로, 윈도우 모드에서도 BackBufferFormat 에 D3DFMT_UNKNOWN 를 지정할 수 있다. 이것에 의해, 런타임에, 현재의 디스플레이 모드 포맷을 사용하는 것으로,IDirect3DDevice9::GetDisplayMode 를 호출할 필요를 없애도록(듯이) 통지한다.

윈도우 애플리케이션에서는, 백 버퍼 포맷이 디스플레이 모드 포맷과 반드시 일치할 필요는 없다. 이것은, 하드웨어가 색변환을 지원 하고 있는 경우, 하드웨어로 색변환을 실행할 수 있기 때문에 있다. 사용 가능한 백 버퍼 포맷세트는 제한되고 있지만, 런타임은 임의의 유효한 백 버퍼 포맷을 사용해, 임의의 데스크탑 포맷에 프레젠테이션 할 수 있다. 다만, 장치가 데스크탑 모드로 동작 가능해야 한다고 하는 요건도 있다. 보통, 장치는 픽셀 근처 8 비트의 모드에서는 동작하지 않는다.

풀 스크린 애플리케이션에서는, 색변환을 실행할 수 없다.

BackBufferCount

이 값에는, 0 (또는 1), 2, 또는 3 을 설정할 수 있다. 0 은 1 으로서 처리된다. 백 버퍼가 생성 할 수 없었던 경우, 런타임은 메서드의 호출해에 실패해, 생성 할 수 있던 백 버퍼수를 이 값으로 설정한다. 따라서, 같은 D3DPRESENT_PARAMETERS 구조체를 지정해 메서드를 2 회 호출하면, 2 번째에는 호출이 성공하는 것으로 예상된다.

백 버퍼를 1 개나 생성 할 수 없는 경우, 메서드는 실패한다. BackBufferCount 의 값은, 사용 가능한 스왑 이펙트세트에 영향을 준다. 특히,D3DSWAPEFFECT_COPY 스왑 이펙트에서는, 존재하는 백 버퍼가 엄밀하게 1 개가 아니면 안된다.

MultiSampleType

D3DMULTISAMPLE_TYPE 열거형의 멤버. SwapEffectD3DSWAPEFFECT_DISCARD 가 설정되지 않은 경우, 이 값은 D3DMULTISAMPLE_NONE 가 아니면 안된다. 멀티 샘플링은, 스왑 이펙트가 D3DSWAPEFFECT_DISCARD 의 경우에만 지원 된다.

MultiSampleQuality
품질 레벨. 유효 범위는, 0 으로부터,IDirect3D9::CheckDeviceMultiSampleType 로 사용하는 pQualityLevels 에 돌려받는 레벨로부터 1 을 뺀 값까지이다. 이것보다 큰 값을 건네주면 에러 D3DERR_INVALIDCALL 가 반환된다. 렌더링 타겟 또는 스텐실 표면의 편성의 값과D3DMULTISAMPLE_TYPE 는, 일치하고 있을 필요가 있다.

SwapEffect

D3DSWAPEFFECT 열거형의 멤버. 런타임은, 버퍼 스왑 동작에 관해서 지정되고 있는 의미들을 보증한다. 따라서,Windowed 가 TRUE 로 SwapEffectD3DSWAPEFFECT_FLIP 로 설정되어 있는 경우, 런타임은 1 개 여분으로 백 버퍼를 생성 해, 프레젠테이션시에 프론트 버퍼가 되는 것을 모두 복사 한다.

D3DSWAPEFFECT_COPY 에서는,BackBufferCount 를 1 으로 설정할 필요가 있다.

디버그 런타임에 대해서는, 제시한 후의 버퍼에 노이즈를 저장 하는 것으로,D3DSWAPEFFECT_DISCARD 를 강제한다.

hDeviceWindow

풀 스크린 모드의 경우, 이것은 커버 윈도우이다. 윈도우 모드의 경우, 이것은 IDirect3DDevice9::Present 에 대한 디폴트의 타겟 윈도우이다. 이 값이 NULL 의 경우는, 포커스 윈도우가 사용된다. 멀티 모니터 시스템 등, 복수의 풀 스크린 장치를 사용하는 애플리케이션의 경우는, 정확하게 1 개의 장치가 장치 윈도우로서 포커스 윈도우를 사용해야 한다. 그 외의 모든 윈도우는, 일의의 장치 윈도우를 갖는다. 그 이외의 경우는, 동작은 정의되지 않고, 애플리케이션은 기대대로 동작하지 않는다.

런타임은 사용자에 의한 윈도우 사이즈의 변경을 반영하려고 하지 않는 것에, 주의할 필요가 있다. 이 윈도우가 리셋 되어도, 백 버퍼가 암묵적으로 리셋 될 것은 없다. 다만,IDirect3DDevice9::Present 메서드는, 윈도우 위치의 변화를 자동적으로 추적한다.

Windowed

애플리케이션이 윈도우 모드로 동작하는 경우는 TRUE, 풀 스크린 모드로 동작하는 경우는 FALSE 이다.

EnableAutoDepthStencil

이 값이 TRUE 의 경우, Microsoft® Direct3D® 는 애플리케이션에 대한 깊이 버퍼를 관리한다. 장치는, 생성 되면 스텐실 버퍼를 생성 한다. 스텐실 버퍼는, 장치의 렌더링 타겟으로서 자동적으로 설정된다. 장치가 리셋 되면 스텐실 버퍼는 자동적으로 파기되어, 새로운 사이즈로 다시 생성 된다.

EnableAutoDepthStencil 가 TRUE 의 경우,AutoDepthStencilFormat 는 유효한 스텐실 포맷이 아니면 안된다.

AutoDepthStencilFormat

D3DFORMAT 열거형의 멤버. 장치가 생성 하는 자동 스텐실 표면의 포맷이다. EnableAutoDepthStencil 가 TRUE 가 아닌 경우, 이 멤버는 무시된다.

Flags

D3DPRESENTFLAG 중 하나.

FullScreen_RefreshRateInHz

디스플레이 어댑터에 의한 스크린의 refresh rate. 윈도우 모드의 경우, 이 값은 0 이 아니면 안된다. 그 이외의 경우, 이 값은,IDirect3D9::EnumAdapterModes 가 돌려주는 refresh rate 중 하나, 또는 다음 값 중 하나가 아니면 안된다.

D3DPRESENT_RATE_DEFAULT
런타임은 프레젠테이션 속도를 선택한다. 윈도우 모드의 경우는, 현재의 속도를 사용한다.
PresentationInterval

사용 가능한 값과 그 의미의 일람에 대해서는, 「D3DPRESENT 」를 참조할것.

윈도우 스왑 체인으로 사용할 수 있는 값은, D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_ONE (이것은 D3DPRESENT_INTERVAL_DEFAULT 와 동일하다), D3DPRESENT_INTERVAL_IMMEDIATE 중 하나이다.

풀 스크린 스왑 체인의 경우는, D3DPRESENT_INTERVAL_DEFAULT, 또는 D3DCAPS9PresentationIntervals 멤버에 열거되고 있는 몇개의 플래그에 정확하게 일치하는 값을 설정할 수 있다. 풀 스크린 스왑 체인의 경우는, D3DPRESENT_INTERVAL_IMMEDIATE 가 항상 유효한 옵션인 것에 주의 해야 한다. 이 프레젠테이션 간격이 선택되고 있어, 드라이버가 직접적인 페이지 플립핑 처리를 지원 하고 있지 않는 경우, 런타임은 백 버퍼의 컨텐츠를 프론트 버퍼에 블리트 처리를 사용해 복사 하는 것에 의해,IDirect3DDevice9::Present 처리를 처리 한다.

구조체의 정보

헤더d3d9types.h
최저한의 operating system Windows 98

참조

IDirect3D9::CreateDevice ,IDirect3DDevice9::CreateAdditionalSwapChain ,IDirect3DDevice9::Present ,IDirect3DDevice9::Reset


© 2002 Microsoft Corporation. All rights reserved.
↑TOP