共用方式為


ID2D1EffectImpl::P repareForRender 方法 (d2d1effectauthor.h)

準備轉譯程式的效果。

語法

HRESULT PrepareForRender(
  D2D1_CHANGE_TYPE changeType
);

參數

changeType

類型: D2D1_CHANGE_TYPE

指出效果應該預期的變更類型。

傳回值

類型: HRESULT

如果方法成功,它會 傳回S_OK。 如果失敗,則會傳回 HRESULT 錯誤碼。

備註

當效果位於繪製的效果圖形內時,轉譯器會呼叫這個方法。

系統會呼叫 方法:

  • 如果效果已初始化,但先前尚未繪製。
  • 如果自上次繪製呼叫之後已設定效果屬性。
  • 如果上次繪製效果之後的內容狀態已變更。
否則不會呼叫 方法。 系統會呼叫效果所建立的轉換,以處理每個繪製呼叫的輸入和輸出矩形。

大部分的影響都會延遲建立任何資源或指定拓撲,直到進行此呼叫為止。 他們會儲存其屬性,並在第一次繪製時將它們對應至一組具體的轉譯技術。

範例

效果通常會等到轉譯,再貼齊其目前狀態,並將它套用至它所封裝的任何轉換。

class CMyTransform : public ID2D1DrawTransform
{
public:

    // Transform methods omitted.
    
    HRESULT PrepareForRender(FLOAT radius);
};

class CEffectImplementation : public ID2D1EffectImpl
{
public:

    void SetRadius(FLOAT radius) { _radius = radius; }

    IFACEMETHODIMP PrepareForRender(D2D1_CHANGE_TYPE /*type*/)
    {
        // Send the radius to the transform and ask it to render.
        return _pMyTransform->PrepareForRender(_radius);
    }

private:

    CMyTransform *_pMyTransform;
    FLOAT _radius;
};

規格需求

需求
最低支援的用戶端 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d2d1effectauthor.h
程式庫 D2D1.lib

另請參閱

ID2D1DeviceContext

ID2D1EffectImpl