ID2D1DrawInfo::SetVertexProcessing 方法 (d2d1effectauthor.h)
設定頂點緩衝區、對應的頂點著色器,以及控制 Direct2D 內容如何處理頂點的選項。
語法
HRESULT SetVertexProcessing(
[in, optional] ID2D1VertexBuffer *vertexBuffer,
D2D1_VERTEX_OPTIONS vertexOptions,
[in, optional] const D2D1_BLEND_DESCRIPTION *blendDescription,
[in, optional] const D2D1_VERTEX_RANGE *vertexRange,
const GUID *vertexShader
);
參數
[in, optional] vertexBuffer
類型: ID2D1VertexBuffer*
如果清除這個,則會使用頂點緩衝區,使用預設頂點著色器和轉換矩形的對應。
vertexOptions
影響轉譯器如何與頂點著色器互動的選項。
[in, optional] blendDescription
類型: const D2D1_BLEND_DESCRIPTION*
頂點如何與輸出紋理混合。
[in, optional] vertexRange
類型: const D2D1_VERTEX_RANGE*
要從緩衝區使用的頂點集合。
vertexShader
類型: GUID*
頂點著色器的 GUID。
傳回值
類型: HRESULT
如果方法成功,它會 傳回S_OK。 如果失敗,則會傳回 HRESULT 錯誤碼。
備註
透過頂點著色器 GUID 與頂點緩衝區相關聯的頂點著色器,必須先透過 ID2D1EffectContext::LoadVertexShader 方法載入,才能進行此呼叫。
如果您傳遞頂點選項 D2D1_VERTEX_OPTIONS_DO_NOT_CLEAR,除非混合描述完全相同,否則方法會失敗:
D2D1_BLEND_DESCRIPTION blendDesc =
{
D2D1_BLEND_ONE,
D2D1_BLEND_ZERO,
D2D1_BLEND_OPERATION_ADD,
D2D1_BLEND_ONE,
D2D1_BLEND_ZERO,
D2D1_BLEND_OPERATION_ADD,
{ 1.0f, 1.0f, 1.0f, 1.0f }
};
如果此呼叫失敗,對應的 ID2D1Effect 實例會進入錯誤狀態,而且無法繪製。
如果 blendDescription 為 NULL,則會使用前景混合模式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1effectauthor.h |
程式庫 | D2d1.lib |