LPD3DHAL_CONTEXTCREATECB回调函数 (d3dhal.h)

D3dContextCreate 函数创建上下文。

语法

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

参数

unnamedParam1

pccd [in]

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

返回值

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

注解

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

  • 使用驱动程序执行呈现所需的所有信息初始化驱动程序的上下文。 这包括将 pccdD3DHAL_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。 有关详细信息 ,请参阅管理 PDEV

要求

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

另请参阅

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL