ID2D1EffectImpl::PrepareForRender method (d2d1effectauthor.h)
Prepares an effect for the rendering process.
Syntax
HRESULT PrepareForRender(
D2D1_CHANGE_TYPE changeType
);
Parameters
changeType
Type: D2D1_CHANGE_TYPE
Indicates the type of change the effect should expect.
Return value
Type: HRESULT
If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.
Remarks
This method is called by the renderer when the effect is within an effect graph that is drawn.
The method will be called:
- If the effect has been initialized but has not previously been drawn.
- If an effect property has been set since the last draw call.
- If the context state has changed since the effect was last drawn.
Most effects defer creating any resources or specifying a topology until this call is made. They store their properties and map them to a concrete set of rendering techniques when first drawn.
Examples
An effect normally waits until it is rendered before snapping its current state and applying it to any transforms it has encapsulated.
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;
};
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 8 and Platform Update for Windows 7 [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2012 and Platform Update for Windows Server 2008 R2 [desktop apps | UWP apps] |
Target Platform | Windows |
Header | d2d1effectauthor.h |
Library | D2D1.lib |