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 使用的 Surface。
lpDDSZLcl
指向描述要當做深度緩衝區之 DirectDraw 表面的DD_SURFACE_LOCAL結構。 如果這個成員是 NULL,則不會執行深度緩衝。
dwPID
指定目前的進程識別碼。 這是起始建立 Direct3D 裝置之 Direct3D 應用程式的進程標識碼。
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 中傳回內容識別碼,讓 Direct3D 運行時間在與驅動程式通訊時使用。
規格需求
需求 | 值 |
---|---|
標頭 | d3dhal.h (包含 D3dhal.h) |