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>