共用方式為


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

類型: D2D1_VERTEX_OPTIONS

影響轉譯器如何與頂點著色器互動的選項。

[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

另請參閱

ID2D1DrawInfo

ID2D1EffectContext::CreateVertexBuffer

ID2D1EffectContext::LoadVertexShader