共用方式為


D3DXFX

儲存和建立效果的選項。

下表中的常數定義于 d3dx9effect.h 中。

效果狀態儲存和還原旗標 描述
D3DXFX_DONOTSAVESTATE 呼叫 Begin 或還原呼叫 End 時,不會儲存狀態。
D3DXFX_DONOTSAVESAMPLERSTATE stateblock 會在呼叫 Begin 時儲存狀態,並在呼叫 End 時還原狀態。
D3DXFX_DONOTSAVESHADERSTATE stateblock 會在呼叫 Begin 時儲存狀態(除了著色器和著色器常數外),並在呼叫 End 時還原狀態。
效果建立旗標 描述
D3DXFX_NOT_CLONEABLE 效果將是不可複製的,而且不會包含任何著色器二進位資料。 GetPassDesc 不會傳回著色器函式指標。 設定此旗標可減少約 50% 的效果記憶體使用量,因為它不需要讓效果系統將著色器複本保留在記憶體中。 D3DXCreateEffect D3DXCreateEffectFromFile D3DXCreateEffectFromResource 會使用此 旗標。
D3DXFX_LARGEADDRESSAWARE 啟用將效果資源配置到機器的 uppder 位址空間。 其中一個重要限制是您無法使用字串並交替處理。 例如,下列專案將無法再運作。
g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection );

相反地,GetParameterByName 之類的 方法必須用來儲存參數的控制碼,然後用來將變數傳遞至效果。

 

下表中的常數預設不會定義,而且必須由開發人員定義。

效果預處理器 #define 描述
D3DXFX_LARGEADDRESS_HANDLE 在包含 d3dx9.h 之前定義此值,讓應用程式在嘗試將字串傳遞至D3DXHANDLE參數時無法編譯。 這可協助確保有效的資訊會傳遞至執行時間。
效果連結器旗標 描述
LARGE_ADDRESS_AWARE 設定連結器旗標LARGE_ADDRESS_AWARE = 1 可讓應用程式在需要時配置超過 2GB 位址限制的資源。

 

效果系統會使用狀態欄塊自動儲存和還原狀態。 如需狀態欄塊的詳細資訊,請參閱 狀態欄塊儲存和還原狀態(Direct3D 9)。

效果常數