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