將圖元著色器程式代碼轉換成硬體特定格式,並將此程式代碼與著色器控點產生關聯。
語法
PFND3D11_1DDI_CREATEPIXELSHADER Pfnd3d111DdiCreatepixelshader;
void Pfnd3d111DdiCreatepixelshader(
D3D10DDI_HDEVICE unnamedParam1,
const UINT *pShaderCode,
D3D10DDI_HSHADER unnamedParam3,
D3D10DDI_HRTSHADER unnamedParam4,
const D3D11_1DDIARG_STAGE_IO_SIGNATURES *unnamedParam5
)
{...}
參數
unnamedParam1
hDevice [in]
顯示裝置的句柄(圖形內容)。
pShaderCode
組成著色器程序代碼之 CONST UINT 令牌陣列的指標。 著色器程式代碼數據流中的第一個令牌一律是版本令牌。 數據流中的下一個令牌是決定著色器程式代碼數據流結尾的長度標記。 如需 Direct3D 11.1 版著色器程式代碼格式的詳細資訊,請參閱 WDK 隨附之 D3d10tokenizedprogramformat.hpp 頭檔內的批注。
unnamedParam3
hShader [in]
圖元著色器的驅動程式私用數據句柄。 驅動程式會傳回Microsoft Direct3D 運行時間必須從呼叫驅動程式的 CalcPrivateShaderSize(D3D11_1) 函式配置私用數據的大小,以位元組為單位。 句柄實際上只是記憶體區域的指標,驅動程式所要求的大小。 驅動程式會使用此記憶體區域來儲存與其著色器對象相關的內部數據結構。
unnamedParam4
hRTShader [in]
驅動程式在回呼 Direct3D 執行時間時應該使用的圖元著色器句柄。
unnamedParam5
pSignatures [in]
組成著色器簽章之 D3D11_1DDIARG_STAGE_IO_SIGNATURES 結構的指標。
傳回值
沒有
言論
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
驅動程式可以在 呼叫 pfnSetErrorCb 函式時傳遞E_OUTOFMEMORY(如果驅動程式記憶體不足)或D3DDDIERR_DEVICEREMOVED(如果裝置已移除)。 Direct3D 運行時間會判斷任何其他錯誤都很重要。 如果驅動程式通過任何錯誤,包括D3DDDIERR_DEVICEREMOVED,Direct3D 運行時間將判斷句柄不正確;因此,運行時間不會呼叫 DestroyShader 函式,以終結 hShader 參數指定的句柄。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8 |
支援的最低伺服器 | Windows Server 2012 |
目標平臺 | 桌面 |
標頭 | d3d10umddi.h (包括 D3d10umddi.h) |
另請參閱
CalcPrivateShaderSize(D3D11_1)