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
Library D2D1.lib

こちらもご覧ください

ID2D1DeviceContext

ID2D1EffectImpl