Compositor Class
Definition
The Compositor class manages communication between UI-thread and render-thread parts of the composition engine. It also serves as a factory to create UI-thread parts of various composition objects
public class Compositor
Methods
| Name | Description |
|---|---|
| CreateAnimationGroup | No summary available. |
| CreateBooleanKeyFrameAnimation | No summary available. |
| CreateColorKeyFrameAnimation | No summary available. |
| CreateCompositionVisualSnapshot | No summary available. |
| CreateContainerVisual | No summary available. |
| CreateCustomVisual | No summary available. |
| CreateDoubleKeyFrameAnimation | No summary available. |
| CreateDrawingSurface | No summary available. |
| CreateExpressionAnimation (2 overloads) | No summary available. |
| CreateImplicitAnimationCollection | No summary available. |
| CreateQuaternionKeyFrameAnimation | No summary available. |
| CreateScalarKeyFrameAnimation | No summary available. |
| CreateSolidColorVisual | No summary available. |
| CreateSurfaceVisual | No summary available. |
| CreateVector2KeyFrameAnimation | No summary available. |
| CreateVector3DKeyFrameAnimation | No summary available. |
| CreateVector3KeyFrameAnimation | No summary available. |
| CreateVector4KeyFrameAnimation | No summary available. |
| CreateVectorKeyFrameAnimation | No summary available. |
| RequestCommitAsync | Requests pending changes in the composition objects to be serialized and sent to the render thread |
| RequestCompositionBatchCommitAsync | Requests pending changes in the composition objects to be serialized and sent to the render thread |
| RequestCompositionUpdate | Enqueues a callback to be called before the next scheduled commit. If there is no scheduled commit it automatically schedules one This is useful for updating your composition tree objects after binding and layout passes have completed |
| TryGetCompositionGpuInterop | Attempts to query for GPU interop feature from the platform render interface |
| TryGetDefaultCompositor | Attempts to get the Compositor instance that will be used by default for new TopLevels created by the current platform backend. |
| TryGetRenderInterfaceFeature | Attempts to query for a feature from the platform render interface |
CreateAnimationGroup Method
public Avalonia.Rendering.Composition.Animations.CompositionAnimationGroup CreateAnimationGroup()
Returns
Avalonia.Rendering.Composition.Animations.CompositionAnimationGroup
CreateBooleanKeyFrameAnimation Method
public Avalonia.Rendering.Composition.BooleanKeyFrameAnimation CreateBooleanKeyFrameAnimation()
Returns
CreateColorKeyFrameAnimation Method
public Avalonia.Rendering.Composition.ColorKeyFrameAnimation CreateColorKeyFrameAnimation()
Returns
CreateCompositionVisualSnapshot Method
public System.Threading.Tasks.Task<Avalonia.Media.Imaging.Bitmap> CreateCompositionVisualSnapshot(Avalonia.Rendering.Composition.CompositionVisual visual, double scaling)
Parameters
visual Avalonia.Rendering.Composition.CompositionVisual
scaling double
Returns
System.Threading.Tasks.Task<Avalonia.Media.Imaging.Bitmap>
CreateContainerVisual Method
public Avalonia.Rendering.Composition.CompositionContainerVisual CreateContainerVisual()
Returns
CreateCustomVisual Method
public Avalonia.Rendering.Composition.CompositionCustomVisual CreateCustomVisual(Avalonia.Rendering.Composition.CompositionCustomVisualHandler handler)
Parameters
handler Avalonia.Rendering.Composition.CompositionCustomVisualHandler
Returns
CreateDoubleKeyFrameAnimation Method
public Avalonia.Rendering.Composition.DoubleKeyFrameAnimation CreateDoubleKeyFrameAnimation()
Returns
CreateDrawingSurface Method
public Avalonia.Rendering.Composition.CompositionDrawingSurface CreateDrawingSurface()
Returns
CreateExpressionAnimation overloads
CreateExpressionAnimation Method
public Avalonia.Rendering.Composition.Animations.ExpressionAnimation CreateExpressionAnimation()
Returns
Avalonia.Rendering.Composition.Animations.ExpressionAnimation
CreateExpressionAnimation Method
public Avalonia.Rendering.Composition.Animations.ExpressionAnimation CreateExpressionAnimation(string expression)
Parameters
expression string
Returns
Avalonia.Rendering.Composition.Animations.ExpressionAnimation
CreateImplicitAnimationCollection Method
public Avalonia.Rendering.Composition.Animations.ImplicitAnimationCollection CreateImplicitAnimationCollection()
Returns
Avalonia.Rendering.Composition.Animations.ImplicitAnimationCollection
CreateQuaternionKeyFrameAnimation Method
public Avalonia.Rendering.Composition.QuaternionKeyFrameAnimation CreateQuaternionKeyFrameAnimation()
Returns
CreateScalarKeyFrameAnimation Method
public Avalonia.Rendering.Composition.ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation()
Returns
CreateSolidColorVisual Method
public Avalonia.Rendering.Composition.CompositionSolidColorVisual CreateSolidColorVisual()
Returns
CreateSurfaceVisual Method
public Avalonia.Rendering.Composition.CompositionSurfaceVisual CreateSurfaceVisual()
Returns
CreateVector2KeyFrameAnimation Method
public Avalonia.Rendering.Composition.Vector2KeyFrameAnimation CreateVector2KeyFrameAnimation()
Returns
CreateVector3DKeyFrameAnimation Method
public Avalonia.Rendering.Composition.Vector3DKeyFrameAnimation CreateVector3DKeyFrameAnimation()
Returns
CreateVector3KeyFrameAnimation Method
public Avalonia.Rendering.Composition.Vector3KeyFrameAnimation CreateVector3KeyFrameAnimation()
Returns
CreateVector4KeyFrameAnimation Method
public Avalonia.Rendering.Composition.Vector4KeyFrameAnimation CreateVector4KeyFrameAnimation()
Returns
CreateVectorKeyFrameAnimation Method
public Avalonia.Rendering.Composition.VectorKeyFrameAnimation CreateVectorKeyFrameAnimation()
Returns
RequestCommitAsync Method
Requests pending changes in the composition objects to be serialized and sent to the render thread
public System.Threading.Tasks.Task RequestCommitAsync()
Returns
System.Threading.Tasks.Task
A task that completes when sent changes are applied on the render thread
RequestCompositionBatchCommitAsync Method
Requests pending changes in the composition objects to be serialized and sent to the render thread
public Avalonia.Rendering.Composition.Transport.CompositionBatch RequestCompositionBatchCommitAsync()
Returns
Avalonia.Rendering.Composition.Transport.CompositionBatch
A CompositionBatch object that provides batch lifetime information
RequestCompositionUpdate Method
Enqueues a callback to be called before the next scheduled commit. If there is no scheduled commit it automatically schedules one This is useful for updating your composition tree objects after binding and layout passes have completed
public void RequestCompositionUpdate(Action action)
Parameters
action Action
TryGetCompositionGpuInterop Method
Attempts to query for GPU interop feature from the platform render interface
public System.Threading.Tasks.ValueTask<Avalonia.Rendering.Composition.ICompositionGpuInterop> TryGetCompositionGpuInterop()
Returns
System.Threading.Tasks.ValueTask<Avalonia.Rendering.Composition.ICompositionGpuInterop>
TryGetDefaultCompositor Method
Attempts to get the Compositor instance that will be used by default for new TopLevels created by the current platform backend.
This won't work for every single platform backend and backend settings, e. g. with web we'll need to have separate Compositor instances per output HTML canvas since they don't share OpenGL state. Another case where default compositor won't be available is our planned multithreaded rendering mode where each window would get its own Compositor instance
This method is still useful for obtaining GPU device LUID to speed up initialization, but you should always check if default Compositor matches one used by our control once it gets attached to a TopLevel
public Avalonia.Rendering.Composition.Compositor TryGetDefaultCompositor()
Returns
TryGetRenderInterfaceFeature Method
Attempts to query for a feature from the platform render interface
public System.Threading.Tasks.ValueTask<object> TryGetRenderInterfaceFeature(Type featureType)
Parameters
featureType Type
Returns
System.Threading.Tasks.ValueTask<object>