ID3DX11Effect::Optimize 方法
最大程度地减少效果所需的内存量。
语法
HRESULT Optimize();
参数
此方法没有任何参数。
返回值
类型: HRESULT
返回以下 Direct3D 11 返回代码之一。
备注
效果使用内存空间两种不同的方式:存储运行时执行效果所需的信息,以及存储使用 API 将信息反射回应用程序所需的元数据。 可以通过调用 ID3DX11Effect::Optimize 来最大程度地减少效果所需的内存量,这将从内存中删除反射元数据。 删除反射数据后,用于读取变量的 API 方法将不再有效。
在对效果调用 Optimize 后,以下方法将失败。
- ID3DX11Effect::GetConstantBufferByIndex
- ID3DX11Effect::GetConstantBufferByName
- ID3DX11Effect::GetDesc
- ID3DX11Effect::GetDevice
- ID3DX11Effect::GetTechniqueByIndex
- ID3DX11Effect::GetTechniqueByName
- ID3DX11Effect::GetVariableByIndex
- ID3DX11Effect::GetVariableByName
- ID3DX11Effect::GetVariableBySemantic
注意
调用 ID3DX11Effect::Optimize 之后,使用这些方法检索的引用在调用 ID3DX11Effect::Optimize 之后仍然有效。 这允许应用程序获取所有变量、技术,并传递它将使用、调用 Optimize,然后使用效果。
注意
DirectX SDK 不提供任何用于效果的已编译二进制文件。 必须使用 Effects 11 源来生成效果类型应用程序。 有关使用效果 11 源的详细信息,请参阅 效果 10 和效果 11 之间的差异。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|