PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT回呼函式 (d3d10umddi.h)

DrawIndexedInstancedIndirect 函式會繪製索引基本類型的特定實例。

語法

PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT Pfnd3d11ddiDrawindexedinstancedindirect;

void Pfnd3d11ddiDrawindexedinstancedindirect(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3
)
{...}

參數

unnamedParam1

hDevice [in]

顯示裝置的句柄 (圖形內容) 。

unnamedParam2

hBufferForArgs

緩衝區的句柄,其中包含 要處理的 DrawIndexedInstancedIndirect 自變數。 緩衝區包含下列緊密封裝的結構:

struct DrawIndexedInstancedIndirectArgs {
  UINT IndexCountPerInstance; 
  UINT InstanceCount;
  UINT StartIndexLocation;
  INT BaseVertexLocation;
  UINT StartInstanceLocation;
}

如需這些自變數的詳細資訊,請參閱 DrawIndexedInstanced 參考頁面。

unnamedParam3

AlignedByteOffsetForArgs

位移,以位元組為單位,寫入 hBufferForArgs 所指定的緩衝區。 AlignedByteOffsetForArgs 必須是 4 的倍數。

傳回值

備註

驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。

DrawIndexedInstancedIndirect 函式會執行與呼叫驅動程式 DrawIndexedInstanced 函式相同的工作。 不過, DrawIndexedInstancedIndirect 會從 hBufferForArgs 參數所指定的緩衝區內容取得索引基本類型的相關信息。 DrawIndexedInstancedIndirect 會讀取緩衝區的內容,從 AlignedByteOffsetForArgs 參數指定的位元組位移開始。

當 Direct3D 執行時間呼叫驅動程式的 CreateResource (D3D11) 函式,以建立 hBufferForArgs 參數指定的緩衝區資源時,運行時間必須在 D3D11DDIARG_CREATERESOURCE 結構的 MiscFlags 成員中設定 D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS 旗標。

除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果在呼叫 pfnSetErrorCb 函式時,驅動程式會傳遞任何錯誤,但 D3DDDIERR_DEVICEREMOVED 除外,Direct3D 運行時間會判斷錯誤是重要的。 即使移除裝置,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾 DrawIndexedInstancedIndirect (通常不應該發生) ,驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。

規格需求

需求
最低支援的用戶端 從 Windows 7 操作系統開始,支援 DrawIndexedInstancedIndirect。
目標平台 桌面
標頭 d3d10umddi.h (包含 D3d10umddi.h)

另請參閱

CreateResource (D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawIndexedInstanced

pfnSetErrorCb