D3DXFX

효과를 저장하고 만들기 위한 옵션입니다.

다음 표의 상수는 d3dx9effect.h에 정의되어 있습니다.

효과 상태 저장 및 복원 플래그 설명
D3DXFX_DONOTSAVESTATE Begin을 호출하거나 End를 호출할 때 복원될 때 상태가 저장되지 않습니다.
D3DXFX_DONOTSAVESAMPLERSTATE Stateblock은 Begin을 호출할 때 상태를 저장하고 End를 호출할 때 상태를 복원합니다.
D3DXFX_DONOTSAVESHADERSTATE Stateblock은 Begin을 호출할 때 상태(셰이더 및 셰이더 상수 제외)를 저장하고 End를 호출할 때 상태를 복원합니다.
효과 생성 플래그 설명
D3DXFX_NOT_CLONEABLE 효과는 복제할 수 없으며 셰이더 이진 데이터를 포함하지 않습니다. GetPassDesc 는 셰이더 함수 포인터를 반환하지 않습니다. 이 플래그를 설정하면 효과 시스템에서 셰이더 복사본을 메모리에 유지할 필요가 없으므로 효과 메모리 사용량이 약 50% 줄어듭니다. 이 플래그는 D3DXCreateEffect, D3DXCreateEffectFromFileD3DXCreateEffectFromResource에서 사용됩니다.
D3DXFX_LARGEADDRESSAWARE 효과 리소스를 컴퓨터의 uppder 주소 공간에 할당할 수 있습니다. 한 가지 중요한 제한 사항은 문자열과 핸들을 서로 교환하여 사용할 수 없다는 것입니다. 예를 들어 다음이 더 이상 작동하지 않습니다.
g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection );

대신 GetParameterByName과 같은 메서드를 사용하여 매개 변수의 핸들을 저장한 다음, 변수를 효과에 전달하는 데 사용해야 합니다.

 

다음 표의 상수는 기본적으로 정의되지 않으며 개발자가 정의해야 합니다.

효과 전처리기 #define 설명
D3DXFX_LARGEADDRESS_HANDLE 문자열을 D3DXHANDLE 매개 변수에 전달하려고 할 때 애플리케이션이 컴파일되지 않도록 d3dx9.h를 포함하기 전에 이 값을 정의합니다. 이렇게 하면 유효한 정보가 런타임에 전달되는지 확인하는 데 도움이 됩니다.
효과 링커 플래그 설명
LARGE_ADDRESS_AWARE 링커 플래그를 LARGE_ADDRESS_AWARE = 1로 설정하면 애플리케이션에서 필요한 경우 2GB 주소 제한을 초과하여 리소스를 할당할 수 있습니다.

 

효과 시스템은 상태 블록을 사용하여 상태를 자동으로 저장하고 복원합니다. 상태 블록에 대한 자세한 내용은 상태 블록 저장 및 복원 상태(Direct3D 9)를 참조하세요.

효과 상수