D3DXFX

用于保存和创建效果的选项。

下表中的常量是在 d3dx9effect.h 中定义的。

效果状态保存和还原标志 说明
D3DXFX_DONOTSAVESTATE 在调用 Begin 时不会保存任何状态,在调用 End 时则不会还原任何状态。
D3DXFX_DONOTSAVESAMPLERSTATE 状态块在调用 Begin 时会保存状态,并且在调用 End 时会还原状态。
D3DXFX_DONOTSAVESHADERSTATE 状态块在调用 Begin 时会保存状态(着色器和着色器常量除外),并在调用 End 时会还原状态。
效果创建标志 说明
D3DXFX_NOT_CLONEABLE 该效果将是不可克隆的,并且不回包含任何着色器二进制数据。 GetPassDesc 不会返回着色器函数指针。 设置此标志可减少大约 50% 的效果内存使用,因为效果系统将不再需要将着色器的副本保留在内存中。 此标志由 D3DXCreateEffectD3DXCreateEffectFromFileD3DXCreateEffectFromResource 使用。
D3DXFX_LARGEADDRESSAWARE 支持将效果资源分配给计算机的高位地址空间。 一个重要限制是不能互换使用字符串和句柄。 例如,以下内容将不再有效。
g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection );

相反,必须使用 GetParameterByName 等方法来存储参数的句柄,然后使用该句柄将变量传递给效果。

 

下表中的常量默认未定义,并且必须由开发人员定义。

效果预处理器 #define 的 说明
D3DXFX_LARGEADDRESS_HANDLE 在包括 d3dx9.h 之前定义此值,以便在尝试将字符串传递到 D3DXHANDLE 参数时应用程序无法编译。 这将有助于确保将有效信息传递到运行时。
效果链接器标志 说明
LARGE_ADDRESS_AWARE 设置链接器标志 LARGE_ADDRESS_AWARE = 1 将支持应用程序在需要时分配超过 2GB 地址限制的资源。

 

效果系统使用状态块自动保存和还原状态。 有关状态块的详细信息,请参阅状态块保存和还原状态 (Direct3D 9)

效果常量