IDirect3DDevice9::ValidateDevice 메서드(d3d9helper.h)

단일 패스로 현재 텍스처 혼합 작업 및 인수를 렌더링하는 디바이스의 기능을 보고합니다.

구문

HRESULT ValidateDevice(
  [out, retval] DWORD *pNumPasses
);

매개 변수

[out, retval] pNumPasses

형식: DWORD*

멀티패스 렌더링을 통해 원하는 효과를 완료하는 데 필요한 렌더링 패스 수로 채울 DWORD 값에 대한 포인터입니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_CONFLICTINGRENDERSTATE, D3DERR_CONFLICTINGTEXTUREFILTER, D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_TOOMANYOPERATIONS, D3DERR_UNSUPPORTEDALPHAARG, D3DERR_UNSUPPORTEDALPHAOPERATION, D3DERR_UNSUPPORTEDCOLORARG, D3DERR_UNSUPPORTEDCOLOROPERATION, D3DERR_UNSUPPORTEDFACTORVALUE, D3DERR_UNSUPPORTEDTEXTUREFILTER, D3DERR_WRONGTEXTUREFORMAT 중 하나일 수 있습니다.

설명

IDirect3DDevice9::ValidateDevice 메서드는 다른 기능이 부족한 경우에만 시나리오의 유효성을 검사하는 데 사용해야 합니다. 예를 들어 다단계 텍스처 시나리오에서는 D3DCAPS9 구조체의 MaxTextureBlendStages 및 MaxSimultaneousTextures 멤버를 쿼리하여 디바이스에서 다단계 텍스처링이 가능한지 확인할 수 있습니다.

현재 하드웨어가 가능한 모든 작업 및 인수 조합을 구현하지는 않습니다. 원하는 혼합 작업을 설정한 다음 IDirect3DDevice9::ValidateDevice 메서드를 호출하여 특정 혼합 작업을 지정된 인수로 수행할 수 있는지 여부를 확인할 수 있습니다.

IDirect3DDevice9::ValidateDevice 메서드는 현재 렌더링 상태, 텍스처 및 텍스처 단계 상태를 사용하여 호출 시 유효성 검사를 수행합니다. 호출 후 이러한 요소를 변경하면 이전 결과가 무효화되고, 장면을 렌더링하기 전에 메서드를 다시 호출해야 합니다.

최상의 성능을 위해 초기화 시 IDirect3DDevice9::ValidateDevice 를 호출합니다. 렌더링 루프 내에서 사용하지 마세요.

확산 반복된 값을 인수로 사용하거나 작업(D3DTA_DIFFUSED3DTOP_BLENDDIFFUSEALPHA)으로 사용하는 것은 현재 하드웨어에서 거의 지원되지 않습니다. 대부분의 하드웨어는 마지막 텍스처 작업 단계에서만 반복된 색 데이터를 도입할 수 있습니다.

각 스테이지의 텍스처(D3DTA_TEXTURE)를 두 번째 인수가 아닌 첫 번째 인수로 지정해 보세요.

많은 카드는 임의의 텍스처 단계에서 확산 또는 스칼라 값 사용을 지원하지 않습니다. 종종 첫 번째 또는 마지막 텍스처 혼합 단계에서만 사용할 수 있습니다.

많은 카드에는 알파를 색 채널로 복제하거나 입력을 반전하는 것 이상의 기능을 제공하는 첫 번째 텍스처와 연결된 혼합 단위가 없습니다. 따라서 가능하면 애플리케이션에서 두 번째 텍스처 단계만 사용해야 할 수 있습니다. 이러한 하드웨어에서 첫 번째 단위는 기본 상태로 추정되며, 첫 번째 색 인수는 D3DTOP_SELECTARG1 작업으로 D3DTA_TEXTURE 설정됩니다.

색 작업보다 복잡하거나 색상 작업과 실질적으로 다른 출력 알파에 대한 작업은 지원되지 않을 가능성이 적습니다.

일부 하드웨어는 D3DTA_TFACTOR 및 D3DTA_DIFFUSE 동시 사용을 지원하지 않습니다.

많은 카드는 여러 텍스처 및 mipmapped 삼선형 필터링의 동시 사용을 지원하지 않습니다. 다중 텍스트 혼합 작업과 관련된 텍스처에 대해 삼선형 필터링이 요청되고 유효성 검사가 실패하는 경우 3선형 필터링을 해제하고 유효성을 다시 검사합니다. 이 경우 멀티패스 렌더링을 대신 수행할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d9helper.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3DDevice9

IDirect3DDevice9::GetTextureStageState

IDirect3DDevice9::SetTextureStageState