LPD3DHAL_CONTEXTCREATECB 回调函数 (d3dhal)

D3dContextCreate函数创建上下文。

语法

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

参数

unnamedParam1

pccd [in]

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

返回值

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

注解

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

  • 使用驱动程序执行呈现所需的所有信息初始化驱动程序的上下文。 这包括将 D3DHAL_CONTEXTCREATEDATA 结构的 lpDDSLcllpDDSZLcl 成员分别与上下文相关联,并将其与 pccd 点相关联。
  • 为此新上下文生成唯一的上下文 ID 并将其返回 D3DHAL_CONTEXTCREATEDATA 的 dwhContext 成员。 Direct3D 在此 Direct3D 设备的每个后续回拨中使用此上下文 ID。 驱动程序绝不能创建零的上下文句柄。
  • 将 D3DHAL_CONTEXTCREATEDATA 的 ddrval 成员设置为在成功时 DD_OK,如果不能创建上下文,则为 D3DHAL_OUTOFCONTEXTS。
  • 返回 DDHAL_DRIVER_HANDLED。
D3dContextCreate不应将指针缓存到作为 D3DHAL_CONTEXTCREATEDATA 的lpDDLcl成员传入的DD_DIRECTDRAW_LOCAL结构。 如果驱动程序随后需要通过此 DD_DIRECTDRAW_LOCAL 指针访问的任何信息,则驱动程序应将此信息存储在驱动程序的私有上下文数据结构中。

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

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

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

要求

   
目标平台 桌面型
标头 d3dhal (包含 D3dhal)

请参阅

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL