PFND3DDDI_SETDISPLAYMODECB 콜백 함수(d3dumddi.h)
pfnSetDisplayModeCb 함수는 디스플레이로 검색하는 데 사용되는 할당을 설정합니다.
구문
PFND3DDDI_SETDISPLAYMODECB Pfnd3dddiSetdisplaymodecb;
HRESULT Pfnd3dddiSetdisplaymodecb(
HANDLE hDevice,
D3DDDICB_SETDISPLAYMODE *unnamedParam2
)
{...}
매개 변수
hDevice
디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.
unnamedParam2
pData [in, out]
검색에 사용되는 할당을 설명하는 D3DDDICB_SETDISPLAYMODE 구조체에 대한 포인터입니다.
반환 값
pfnSetDisplayModeCb 는 다음 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
S_OK | 표시 모드가 성공적으로 설정되었습니다. |
E_INVALIDARG | 매개 변수의 유효성이 검사되었고 잘못된 것으로 확인되었습니다. |
D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT | 사용자 모드 표시 드라이버는 D3DDDICB_SETDISPLAYMODE hPrimaryAllocation 멤버가 지정하는 할당과 연결된 표면의 형식을 D3DDDICB_SETDISPLAYMODE PrivateDriverFormatAttributember가 지정하는 형식 특성으로 변환해야 합니다. 그런 다음 드라이버는 pfnSetDisplayModeCb를 다시 호출해야 합니다. 드라이버는 새 할당을 할당하고, 이전 주 표면에서 새 화면으로 비트 블록 전송(비트블렛)을 수행한 다음, 드라이버가 모든 후속 작업에 이 할당에 새 할당 핸들을 사용하는 한 이전 주 데이터베이스를 삭제할 수 있습니다. 드라이버는 pfnSetDisplayModeCb가 다른 반환 값을 반환할 때까지 이 프로세스를 반복해야 합니다. |
이 함수는 다른 HRESULT 값을 반환할 수도 있습니다.
설명
Microsoft Direct3D 런타임이 사용자 모드 디스플레이 드라이버의 SetDisplayMode 또는 SetDisplayModeDXGI 함수를 호출하여 기본 표면을 디스플레이로 검사하도록 설정한 후 사용자 모드 디스플레이 드라이버는 pfnSetDisplayModeCb 함수를 호출하여 검사에 사용되는 기본 기본 할당을 설정합니다.
참고 사용자 모드 표시 드라이버가 pfnSetDisplayModeCb 를 호출하여 확장된 형식, 다중 샘플링 방법 또는 둘 다를 사용하는 새 디스플레이 모드를 설정하기 전에 드라이버는 현재 GDI 디스플레이 모드가 새 디스플레이 모드와 동일한 해상도를 갖는지 확인해야 합니다. 그렇지 않으면 pfnSetDisplayModeCb 는 E_INVALIDARG 반환합니다.
Direct3D 버전 11 참고: 드라이버가 pfnSetDisplayModeCb를 호출하는 방법에 대한 자세한 내용은 Direct3D 10의 변경 내용을 참조하세요.
예제
다음 코드 예제에서는 검색을 위한 할당을 디스플레이로 설정하는 방법을 보여 있습니다.
HRESULT CD3DContext::SetDisplayMode(CONST D3DDDIARG_SETDISPLAYMODE* pSetDisplayMode) {
DWORD dwSrcSurf = ((DWORD)(DWORD_PTR)pSetDisplayMode->hResource) + pSetDisplayMode->SubResourceIndex;
HRESULT hr;
// Timestamp the source surface
m_RTbl[dwSrcSurf].m_qwBatch = m_qwBatch;
// Send the presentation request to the display miniport driver
D3DDDICB_SETDISPLAYMODE SetDisplayModeCBData = {0};
SetDisplayModeCBData.hPrimaryAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx,
dwSrcSurf);
hr = m_d3dCallbacks.pfnSetDisplayModeCb(m_hD3D, &SetDisplayModeCBData);
return (hr);
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | d3dumddi.h(D3dumddi.h 포함) |