mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-31 17:53:32 +00:00
Fixed editor freezing on layer updates
This commit is contained in:
parent
62a9c19ae1
commit
ac0655565e
@ -52,7 +52,9 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var layerGeometry = Geometry.Empty;
|
var group = new GeometryGroup();
|
||||||
|
group.FillRule = FillRule.Nonzero;
|
||||||
|
|
||||||
foreach (var led in Layer.Leds)
|
foreach (var led in Layer.Leds)
|
||||||
{
|
{
|
||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
@ -74,9 +76,11 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
layerGeometry = Geometry.Combine(layerGeometry, geometry, GeometryCombineMode.Union, null, 5, ToleranceType.Absolute);
|
group.Children.Add(geometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var layerGeometry = group.GetOutlinedPathGeometry();
|
||||||
|
|
||||||
var opacityGeometry = Geometry.Combine(Geometry.Empty, layerGeometry, GeometryCombineMode.Exclude, new TranslateTransform());
|
var opacityGeometry = Geometry.Combine(Geometry.Empty, layerGeometry, GeometryCombineMode.Exclude, new TranslateTransform());
|
||||||
layerGeometry.Freeze();
|
layerGeometry.Freeze();
|
||||||
opacityGeometry.Freeze();
|
opacityGeometry.Freeze();
|
||||||
@ -124,7 +128,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
ViewportRectangle = Rect.Empty;
|
ViewportRectangle = Rect.Empty;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var x = Layer.Leds.Min(l => l.RgbLed.AbsoluteLedRectangle.Location.X);
|
var x = Layer.Leds.Min(l => l.RgbLed.AbsoluteLedRectangle.Location.X);
|
||||||
var y = Layer.Leds.Min(l => l.RgbLed.AbsoluteLedRectangle.Location.Y);
|
var y = Layer.Leds.Min(l => l.RgbLed.AbsoluteLedRectangle.Location.Y);
|
||||||
var width = Layer.Leds.Max(l => l.RgbLed.AbsoluteLedRectangle.Location.X + l.RgbLed.AbsoluteLedRectangle.Size.Width) - x;
|
var width = Layer.Leds.Max(l => l.RgbLed.AbsoluteLedRectangle.Location.X + l.RgbLed.AbsoluteLedRectangle.Size.Width) - x;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user