LPD3DHAL_CONTEXTCREATECB回调函数 (d3dhal.h)

D3dContextCreate 函数创建上下文。

语法

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

参数

unnamedParam1

pccd [in]

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

返回值

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

注解

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

  • 使用驱动程序执行呈现所需的所有信息初始化驱动程序的上下文。 这包括将D3DHAL_CONTEXTCREATEDATA结构中 lpDDSLcllpDDSZLcl 成员分别指向上下文的呈现目标和深度缓冲区相关联。
  • 为此新上下文生成唯一的上下文 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。 通过调用显示驱动程序的 DrvAssertMode 函数禁用或启用 PDEV。 有关详细信息,请参阅 管理 PDE

要求

   
目标平台 桌面
Header d3dhal.h (包括 D3dhal.h)

另请参阅

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL