Class DynamicEffect
- Namespace
- PaintDotNet.Direct2D1
- Assembly
- PaintDotNet.Windows.Framework.dll
A dynamic effect is an IDynamicImage that provides metadata properties for DisplayName, Author, Category, and Description.
public abstract class DynamicEffect : DynamicImage, ISerializable, IDynamicEffect, IDynamicImage, IDeviceImage, IDirect2DResource, IObjectRef, IIsDisposed, IDisposable, IFactoryProperty, IInternalImpl
- Inheritance
-
DynamicEffect
- Implements
- Derived
- Inherited Members
- Extension Methods
Remarks
The difference between an IDynamicImage and an IDynamicEffect is
intention, not functionality. IDynamicEffects are intended as public APIs
that can be gathered using reflection and displayed in a UI, such as a node/graph editor,
alongside regular IDeviceEffects. If an IDynamicImage is not an
IDynamicEffect, then it should not be considered an "effect" that can be
surfaced in a UI that works with effects (such as a node/graph editor).
The effect properties are intended to be presented to the user and should not be relied
upon to have any specific text or pattern. They may be changed at any time, and may be
localized (translated).
NOTE: Due to limitations in the Direct2D effects and rendering systems, inputs to dynamic
images that are also used in effect graphs may need to be wrapped in an ICommandList
when used outside of the dynamic image. You can use the CreateBufferedImage(IDeviceContext, IDeviceImage)
extension method for this. See that method for more details.
NOTE: Dynamic images usually require the device context's target to be using a buffer precision of
Float32 for correct rendering.
If your target is lower precision, use CreateCompatibleDeviceContext(SizeFloat?, SizeInt32?, DevicePixelFormat?, CompatibleDeviceContextOptions) to
create an off-screen buffer to render the dynamic image into, and then draw the compatible device context's
bitmap to the final render target (device context).