D3D10CreateStateBlock 函数 (d3d10effect.h)

创建状态块。

语法

HRESULT D3D10CreateStateBlock(
  [in]  ID3D10Device           *pDevice,
  [in]  D3D10_STATE_BLOCK_MASK *pStateBlockMask,
  [out] ID3D10StateBlock       **ppStateBlock
);

参数

[in] pDevice

类型: ID3D10Device*

将为其创建状态块的设备。

[in] pStateBlockMask

类型: D3D10_STATE_BLOCK_MASK*

指示在调用 ID3D10StateBlock::Capture 时将捕获设备状态的哪些部分,并在调用 ID3D10StateBlock::Apply 时重新应用哪些部分。 请参阅备注。

[out] ppStateBlock

类型: ID3D10StateBlock**

指向 (创建的缓冲区的指针的地址,请参阅 ID3D10StateBlock 接口) 。

返回值

类型: HRESULT

此方法返回以下 Direct3D 10 返回代码之一。

注解

状态块是设备状态的集合,用于保存和还原设备状态。 使用状态块掩码启用用于保存和还原的状态子集。

D3D10_STATE_BLOCK_MASK 结构可以 手动填充,也可以使用任何 D3D10StateBlockMaskXXX API 填充。 还可以通过调用 ID3D10EffectTechnique::ComputeStateBlockMaskID3D10EffectPass::ComputeStateBlockMask 来获取状态块掩码

Direct3D 9 与 Direct3D 10 之间的差异:

在 Direct3D 10 中,在调用 ID3D10StateBlock::Capture 之前,状态块对象不包含有关设备状态的任何有效信息。 在 Direct3D 9 中,状态在创建时保存在状态块对象中。

要求

   
目标平台 Windows
标头 d3d10effect.h
Library D3D10.lib
DLL D3D10.dll

另请参阅

核心函数

效果函数