Skip to main content

Compositor Class

Definition

Assembly:Avalonia.Base
Package:Avalonia

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

Inheritance: object -> Compositor

Methods

NameDescription
CreateAnimationGroupNo summary available.
CreateBooleanKeyFrameAnimationNo summary available.
CreateColorKeyFrameAnimationNo summary available.
CreateCompositionVisualSnapshotNo summary available.
CreateContainerVisualNo summary available.
CreateCustomVisualNo summary available.
CreateDoubleKeyFrameAnimationNo summary available.
CreateDrawingSurfaceNo summary available.
CreateExpressionAnimation (2 overloads)No summary available.
CreateImplicitAnimationCollectionNo summary available.
CreateQuaternionKeyFrameAnimationNo summary available.
CreateScalarKeyFrameAnimationNo summary available.
CreateSolidColorVisualNo summary available.
CreateSurfaceVisualNo summary available.
CreateVector2KeyFrameAnimationNo summary available.
CreateVector3DKeyFrameAnimationNo summary available.
CreateVector3KeyFrameAnimationNo summary available.
CreateVector4KeyFrameAnimationNo summary available.
CreateVectorKeyFrameAnimationNo summary available.
RequestCommitAsyncRequests pending changes in the composition objects to be serialized and sent to the render thread
RequestCompositionBatchCommitAsyncRequests pending changes in the composition objects to be serialized and sent to the render thread
RequestCompositionUpdateEnqueues 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
TryGetCompositionGpuInteropAttempts to query for GPU interop feature from the platform render interface
TryGetDefaultCompositorAttempts to get the Compositor instance that will be used by default for new TopLevels created by the current platform backend.
TryGetRenderInterfaceFeatureAttempts 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

Avalonia.Rendering.Composition.BooleanKeyFrameAnimation

CreateColorKeyFrameAnimation Method

public Avalonia.Rendering.Composition.ColorKeyFrameAnimation CreateColorKeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.ColorKeyFrameAnimation

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

Avalonia.Rendering.Composition.CompositionContainerVisual

CreateCustomVisual Method

public Avalonia.Rendering.Composition.CompositionCustomVisual CreateCustomVisual(Avalonia.Rendering.Composition.CompositionCustomVisualHandler handler)

Parameters

handler Avalonia.Rendering.Composition.CompositionCustomVisualHandler

Returns

Avalonia.Rendering.Composition.CompositionCustomVisual

CreateDoubleKeyFrameAnimation Method

public Avalonia.Rendering.Composition.DoubleKeyFrameAnimation CreateDoubleKeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.DoubleKeyFrameAnimation

CreateDrawingSurface Method

public Avalonia.Rendering.Composition.CompositionDrawingSurface CreateDrawingSurface()

Returns

Avalonia.Rendering.Composition.CompositionDrawingSurface

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

Avalonia.Rendering.Composition.QuaternionKeyFrameAnimation

CreateScalarKeyFrameAnimation Method

public Avalonia.Rendering.Composition.ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.ScalarKeyFrameAnimation

CreateSolidColorVisual Method

public Avalonia.Rendering.Composition.CompositionSolidColorVisual CreateSolidColorVisual()

Returns

Avalonia.Rendering.Composition.CompositionSolidColorVisual

CreateSurfaceVisual Method

public Avalonia.Rendering.Composition.CompositionSurfaceVisual CreateSurfaceVisual()

Returns

Avalonia.Rendering.Composition.CompositionSurfaceVisual

CreateVector2KeyFrameAnimation Method

public Avalonia.Rendering.Composition.Vector2KeyFrameAnimation CreateVector2KeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.Vector2KeyFrameAnimation

CreateVector3DKeyFrameAnimation Method

public Avalonia.Rendering.Composition.Vector3DKeyFrameAnimation CreateVector3DKeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.Vector3DKeyFrameAnimation

CreateVector3KeyFrameAnimation Method

public Avalonia.Rendering.Composition.Vector3KeyFrameAnimation CreateVector3KeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.Vector3KeyFrameAnimation

CreateVector4KeyFrameAnimation Method

public Avalonia.Rendering.Composition.Vector4KeyFrameAnimation CreateVector4KeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.Vector4KeyFrameAnimation

CreateVectorKeyFrameAnimation Method

public Avalonia.Rendering.Composition.VectorKeyFrameAnimation CreateVectorKeyFrameAnimation()

Returns

Avalonia.Rendering.Composition.VectorKeyFrameAnimation

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

Avalonia.Rendering.Composition.Compositor

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>