LPD3DHAL_CONTEXTCREATECB回调函数 (d3dhal.h)

D3dContextCreate 函数创建上下文。

语法

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

参数

unnamedParam1

pccd [in]

指向一个 D3DHAL_CONTEXTCREATEDATA 结构,该结构包含创建上下文所需的信息,以及驱动程序应存储在新上下文中的数据。

返回值

D3dContextCreate 返回以下回调代码之一:

言论

D3dContextCreate 必须在支持 Microsoft direct3D 的驱动程序中实现。 它应执行以下步骤:

  • 使用驱动程序执行呈现所需的所有信息初始化驱动程序的上下文。 这包括将呈现目标和深度缓冲区关联到 lpDDSLcllpDDSZLclpccd 指向上下文D3DHAL_CONTEXTCREATEDATA结构的成员。
  • 为此新上下文生成唯一的上下文 ID,并在 D3DHAL_CONTEXTCREATEDATA 的 dwhContext 成员中返回该 ID。 Direct3D 在对此 Direct3D 设备进行的每个后续回调中使用此上下文 ID。 驱动程序绝不能创建零的上下文句柄。
  • ddrval D3DHAL_CONTEXTCREATEDATA 成员设置为成功后DD_OK,如果D3DHAL_OUTOFCONTEXTS它无法创建上下文,则将其设置为D3DHAL_OUTOFCONTEXTS。
  • 返回DDHAL_DRIVER_HANDLED。
D3dContextCreate 不应缓存作为 lpDDLcl D3DHAL_CONTEXTCREATEDATA成员传入的 DD_DIRECTDRAW_LOCAL 结构的指针。 如果驱动程序随后需要通过此DD_DIRECTDRAW_LOCAL指针访问的任何信息,驱动程序应将信息存储在驱动程序的专用上下文数据结构中。

状态在上下文之间不共享;因此,驱动程序必须为每个上下文维护完整的状态信息。 此状态由对 D3DrawPrimitives2的任何后续调用更改。

驱动程序必须能够引用在上下文中创建的所有纹理句柄。 然后,当发出 D3dContextDestroy 调用时,驱动程序可以清理与此上下文中创建的纹理相关的所有特定于驱动程序的数据。

D3dContextCreate 可以使用禁用 PDEV调用。 通过调用显示驱动程序的 DrvAssertMode 函数来禁用或启用 PDEV。 有关详细信息,请参阅 管理 PDEV

要求

要求 价值
目标平台 桌面
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL