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) |