D3DHAL_CONTEXTCREATEDATA结构(d3dhal.h)

D3DHAL_CONTEXTCREATEDATA结构包含 D3dContextCreate 函数创建新上下文所需的全部信息。

语法

typedef struct _D3DHAL_CONTEXTCREATEDATA {
  union {
    LPDDRAWI_DIRECTDRAW_GBL lpDDGbl;
    LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDS;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDSZ;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
  };
  union {
    DWORD     dwPID;
    ULONG_PTR dwrstates;
  };
  ULONG_PTR dwhContext;
  HRESULT   ddrval;
} D3DHAL_CONTEXTCREATEDATA;

成员

lpDDGbl

驱动程序结构(旧版)。

lpDDLcl

指向应用程序必须创建的 DirectDraw 对象,以便检索到 Direct3D 的 COM 接口。 这允许在 DirectDraw 应用程序和驱动程序之间共享上下文信息。 lpDDLcl 是应用程序上下文与驱动程序上下文之间的常见绑定因素。 它指向一个 DD_DIRECTDRAW_LOCAL 结构,该结构用于标识属于给定 Direct3D 上下文的图面,并且仅与当前 DirectDraw 进程相关。 lpDDLcl 是必需的,因为可以在驱动程序中创建 Direct3D 上下文之前创建图面(例如深度缓冲区、呈现缓冲区和纹理)。

lpDDS

要用作目标的 Surface。

lpDDSLcl

指向描述要用作呈现目标的 DirectDraw 图面的 DD_SURFACE_LOCAL 结构。

lpDDSZ

要用作 Z 的图面。

lpDDSZLcl

指向描述要用作深度缓冲区的 DirectDraw 图面的DD_SURFACE_LOCAL结构。 如果此成员 NULL,则不执行深度缓冲。

dwPID

指定当前进程 ID。 这是启动创建 Direct3D 设备的 Direct3D 应用程序的进程 ID。

dwrstates

指向驱动程序在分析命令缓冲区中的呈现状态命令时应更新的呈现状态数组。 数组缓冲区必须足够大,才能至少包含指定的 ULONG 值数。

dwhContext

指定一个位置,该位置指示 Direct3D 用户模式运行时的版本,并在输出中指示驱动程序成功创建上下文时返回上下文句柄。 有关详细信息,请参阅“备注”。

ddrval

指定驱动程序为 D3dContextCreate编写返回代码的位置。 D3D_OK的返回代码指示成功。 D3DHAL_OUTOFCONTEXTS的返回代码指示驱动程序无法创建上下文。 有关详细信息,请参阅 direct3D 驱动程序回调 返回代码。

言论

当 Direct3D 运行时调用驱动程序的 D3dContextCreate 函数时,运行时指定一个数字,该数字指示 dwhContext 成员中的运行时用户模式版本。 下表显示了数字和用户模式版本的映射。

DirectX 用户模式版本
5 9.0
4 8.0
3 7.0
2 6.0
1 5.0
0 3.0

如果驱动程序成功创建上下文,驱动程序会在与驱动程序通信时返回 dwhContext 中的上下文 ID,供 Direct3D 运行时使用。

要求

要求 价值
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

D3dContextCreate

DD_DIRECTDRAW_LOCAL

DD_SURFACE_LOCAL