7 changed files with 199 additions and 82 deletions
@ -0,0 +1,76 @@ |
|||
namespace Avalonia.Rendering.Composition.Server; |
|||
|
|||
partial class ServerCompositionVisual |
|||
{ |
|||
protected bool IsDirtyComposition; |
|||
private bool _combinedTransformDirty; |
|||
private bool _clipSizeDirty; |
|||
|
|||
private const CompositionVisualChangedFields CompositionFieldsMask |
|||
= CompositionVisualChangedFields.Opacity |
|||
| CompositionVisualChangedFields.OpacityAnimated |
|||
| CompositionVisualChangedFields.OpacityMaskBrush |
|||
| CompositionVisualChangedFields.Clip |
|||
| CompositionVisualChangedFields.ClipToBounds |
|||
| CompositionVisualChangedFields.ClipToBoundsAnimated |
|||
| CompositionVisualChangedFields.Size |
|||
| CompositionVisualChangedFields.SizeAnimated; |
|||
|
|||
private const CompositionVisualChangedFields CombinedTransformFieldsMask = |
|||
CompositionVisualChangedFields.Size |
|||
| CompositionVisualChangedFields.SizeAnimated |
|||
| CompositionVisualChangedFields.AnchorPoint |
|||
| CompositionVisualChangedFields.AnchorPointAnimated |
|||
| CompositionVisualChangedFields.CenterPoint |
|||
| CompositionVisualChangedFields.CenterPointAnimated |
|||
| CompositionVisualChangedFields.AdornedVisual |
|||
| CompositionVisualChangedFields.TransformMatrix |
|||
| CompositionVisualChangedFields.Scale |
|||
| CompositionVisualChangedFields.ScaleAnimated |
|||
| CompositionVisualChangedFields.RotationAngle |
|||
| CompositionVisualChangedFields.RotationAngleAnimated |
|||
| CompositionVisualChangedFields.Orientation |
|||
| CompositionVisualChangedFields.OrientationAnimated |
|||
| CompositionVisualChangedFields.Offset |
|||
| CompositionVisualChangedFields.OffsetAnimated; |
|||
|
|||
private const CompositionVisualChangedFields ClipSizeDirtyMask = |
|||
CompositionVisualChangedFields.Size |
|||
| CompositionVisualChangedFields.SizeAnimated |
|||
| CompositionVisualChangedFields.ClipToBounds |
|||
| CompositionVisualChangedFields.ClipToBoundsAnimated; |
|||
|
|||
partial void OnFieldsDeserialized(CompositionVisualChangedFields changed) |
|||
{ |
|||
if ((changed & CompositionFieldsMask) != 0) |
|||
IsDirtyComposition = true; |
|||
if ((changed & CombinedTransformFieldsMask) != 0) |
|||
_combinedTransformDirty = true; |
|||
if ((changed & ClipSizeDirtyMask) != 0) |
|||
_clipSizeDirty = true; |
|||
} |
|||
|
|||
public override void NotifyAnimatedValueChanged(int offset) |
|||
{ |
|||
base.NotifyAnimatedValueChanged(offset); |
|||
if (offset == s_OffsetOf_clipToBounds |
|||
|| offset == s_OffsetOf_opacity |
|||
|| offset == s_OffsetOf_size) |
|||
IsDirtyComposition = true; |
|||
|
|||
if (offset == s_OffsetOf_size |
|||
|| offset == s_OffsetOf_anchorPoint |
|||
|| offset == s_OffsetOf_centerPoint |
|||
|| offset == s_OffsetOf_adornedVisual |
|||
|| offset == s_OffsetOf_transformMatrix |
|||
|| offset == s_OffsetOf_scale |
|||
|| offset == s_OffsetOf_rotationAngle |
|||
|| offset == s_OffsetOf_orientation |
|||
|| offset == s_OffsetOf_offset) |
|||
_combinedTransformDirty = true; |
|||
|
|||
if (offset == s_OffsetOf_clipToBounds |
|||
|| offset == s_OffsetOf_size) |
|||
_clipSizeDirty = true; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue