LPD3DHAL_CONTEXTCREATECB回呼函式 (d3dhal.h)

D3dContextCreate 函式會建立內容。

語法

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

參數

unnamedParam1

pccd [in]

指向 D3DHAL_CONTEXTCREATEDATA 結構,其中包含建立內容所需的資訊,以及驅動程式應該儲存在新內容中的數據。

傳回值

D3dContextCreate 會 傳回下列其中一個回呼代碼:

備註

D3dContextCreate 必須在支援 Microsoft Direct3D 的驅動程序中實作。 它應該執行下列步驟:

  • 使用驅動程式執行轉譯所需的所有資訊,初始化驅動程序的內容。 這包括將D3DHAL_CONTEXTCREATEDATA結構中 lpDDSLcl 和 lpDDSZLcl 成員分別指向內容的轉譯目標和深度緩衝區建立關聯。
  • 產生這個新內容的唯一內容標識符,並在 D3DHAL_CONTEXTCREATEDATA 的 dwhContext 成員中傳回它。 Direct3D 會在後續對這個 Direct3D 裝置所做的每次回呼中使用此內容識別碼。 驅動程序絕對不能建立零的內容句柄。
  • 將 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