ID3D10Device::CreateInputLayout 方法 (d3d10.h)
建立輸入設定物件,以描述 輸入組合器階段的輸入緩衝區資料。
語法
HRESULT CreateInputLayout(
[in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
[in] UINT NumElements,
[in] const void *pShaderBytecodeWithInputSignature,
[in] SIZE_T BytecodeLength,
[out] ID3D10InputLayout **ppInputLayout
);
參數
[in] pInputElementDescs
類型:const D3D10_INPUT_ELEMENT_DESC*
輸入組合器階段輸入資料類型的陣列;每個類型都是由專案描述來描述, (請參閱 D3D10_INPUT_ELEMENT_DESC) 。
[in] NumElements
類型: UINT
input-elements 陣列中的輸入資料類型數目。
[in] pShaderBytecodeWithInputSignature
類型: const void*
已編譯著色器的指標。 若要取得此指標,請參閱 取得已編譯著色器的指標。 編譯的著色器程式碼包含針對專案陣列驗證的 輸入簽章 。 請參閱<備註>。
[in] BytecodeLength
類型: SIZE_T
已編譯著色器的大小。
[out] ppInputLayout
類型: ID3D10InputLayout**
(所建立之輸入設定物件的指標,請參閱 ID3D10InputLayout 介面) 。 若要驗證其他輸入參數,請將此指標設定為 Null ,並確認方法傳回S_FALSE。
傳回值
類型: HRESULT
如果方法成功,傳回碼會S_OK。 如需失敗的錯誤碼,請參閱 Direct3D 10 傳回碼 。
備註
建立輸入設定物件之後,必須先系結至輸入組合器階段,才能呼叫繪製 API。 消費者入門 如需範例程式碼,請參閱使用 Input-Assembler 階段 (Direct3D 10) 。
一旦從著色器簽章建立輸入設定物件之後,輸入設定物件就可以與任何其他具有相同輸入簽章的著色器重複使用 (語意包含在) 。 當您使用許多具有相同輸入的著色器時,這可以簡化輸入設定物件的建立。
如果輸入配置宣告中的資料類型不符合著色器輸入簽章中的資料類型,CreateInputLayout 會在編譯期間產生警告。 警告只是要注意從暫存器讀取時,可能會重新解譯資料的事實。 如果重新解譯是刻意) ,或讓這兩個宣告中的資料類型相符,以消除警告,您可以忽略此警告 (。 資料轉換規則概觀描述用於資料類型轉換的規則。
Direct3D 9 與 Direct3D 10 之間的差異: 將頂點資料對應至具有輸入配置的著色器輸入,是 Direct3D 10 中改善效能的新方式。 在 Direct3D 10 中,頂點資料會在建立輸入設定物件時對應至著色器輸入,而在 Direct3D 9 中,這會根據目前系結的頂點宣告、頂點緩衝區和頂點著色器在 Draw 時間完成。 當建立輸入設定物件時,執行此對應會減少或消除在 Draw 時間為驅動程式的額外連結工作,因為不再需要此重新對應。 |
規格需求
目標平台 | Windows |
標頭 | d3d10.h |
程式庫 | D3D10.lib |