共用方式為


D3DXFX

儲存和建立效果的選項。

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

效果狀態儲存和還原旗標 描述
D3DXFX_DONOTSAVESTATE 呼叫 Begin 或在 呼叫 end時還原時,不會儲存狀態。
D3DXFX_DONOTSAVESAMPLERSTATE stateblock 會在呼叫 Begin 時儲存狀態,並在 呼叫 end時還原狀態。
D3DXFX_DONOTSAVESHADERSTATE stateblock 會在呼叫 Begin 時儲存狀態(除了著色器和著色器常數外),並在 呼叫 end時還原狀態。
效果建立旗標 描述
D3DXFX_NOT_CLONEABLE 效果將是不可複製的,而且不會包含任何著色器二進位數據。 GetPassDesc 不會傳回著色器函式指標。 設定此旗標可減少約 50% 的效果記憶體使用量,因為它不需要讓效果系統將著色器複本保留在記憶體中。 D3DXCreateEffectD3DXCreateEffectFromFileD3DXCreateEffectFromResource使用這個旗標。
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)

效果常數