mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
UI - Don't apply layer brush VMs too early
UI - Create layer geometry on ui thread
This commit is contained in:
parent
cdb91021a2
commit
eda57f6d32
@ -129,14 +129,14 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.LayerProperties
|
|||||||
);
|
);
|
||||||
LayerPropertyGroups.Add(new LayerPropertyGroupViewModel(ProfileEditorService, layer.General, (PropertyGroupDescriptionAttribute) generalAttribute));
|
LayerPropertyGroups.Add(new LayerPropertyGroupViewModel(ProfileEditorService, layer.General, (PropertyGroupDescriptionAttribute) generalAttribute));
|
||||||
LayerPropertyGroups.Add(new LayerPropertyGroupViewModel(ProfileEditorService, layer.Transform, (PropertyGroupDescriptionAttribute) transformAttribute));
|
LayerPropertyGroups.Add(new LayerPropertyGroupViewModel(ProfileEditorService, layer.Transform, (PropertyGroupDescriptionAttribute) transformAttribute));
|
||||||
|
|
||||||
ApplyLayerBrush();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SelectedLayer = null;
|
SelectedLayer = null;
|
||||||
|
|
||||||
TreeViewModel = new TreeViewModel(this, LayerPropertyGroups);
|
TreeViewModel = new TreeViewModel(this, LayerPropertyGroups);
|
||||||
TimelineViewModel = new TimelineViewModel(this, LayerPropertyGroups);
|
TimelineViewModel = new TimelineViewModel(this, LayerPropertyGroups);
|
||||||
|
|
||||||
|
ApplyLayerBrush();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedLayerOnLayerBrushUpdated(object sender, EventArgs e)
|
private void SelectedLayerOnLayerBrushUpdated(object sender, EventArgs e)
|
||||||
@ -146,6 +146,9 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.LayerProperties
|
|||||||
|
|
||||||
public void ApplyLayerBrush()
|
public void ApplyLayerBrush()
|
||||||
{
|
{
|
||||||
|
if (SelectedLayer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
var hideRenderRelatedProperties = SelectedLayer.LayerBrush != null && SelectedLayer.LayerBrush.BrushType == LayerBrushType.RgbNet;
|
var hideRenderRelatedProperties = SelectedLayer.LayerBrush != null && SelectedLayer.LayerBrush.BrushType == LayerBrushType.RgbNet;
|
||||||
SelectedLayer.General.ShapeType.IsHidden = hideRenderRelatedProperties;
|
SelectedLayer.General.ShapeType.IsHidden = hideRenderRelatedProperties;
|
||||||
SelectedLayer.General.FillType.IsHidden = hideRenderRelatedProperties;
|
SelectedLayer.General.FillType.IsHidden = hideRenderRelatedProperties;
|
||||||
|
|||||||
@ -60,6 +60,8 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void CreateLayerGeometry()
|
private void CreateLayerGeometry()
|
||||||
|
{
|
||||||
|
Execute.OnUIThread(() =>
|
||||||
{
|
{
|
||||||
if (!Layer.Leds.Any())
|
if (!Layer.Leds.Any())
|
||||||
{
|
{
|
||||||
@ -96,6 +98,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
group.Children.Add(geometry);
|
group.Children.Add(geometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var layerGeometry = group.GetOutlinedPathGeometry();
|
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());
|
||||||
|
|
||||||
@ -103,13 +106,12 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
OpacityGeometry = opacityGeometry;
|
OpacityGeometry = opacityGeometry;
|
||||||
|
|
||||||
// Render the store as a bitmap
|
// Render the store as a bitmap
|
||||||
Execute.OnUIThread(() =>
|
|
||||||
{
|
|
||||||
var drawingImage = new DrawingImage(new GeometryDrawing(new SolidColorBrush(Colors.Black), null, LayerGeometry));
|
var drawingImage = new DrawingImage(new GeometryDrawing(new SolidColorBrush(Colors.Black), null, LayerGeometry));
|
||||||
var image = new Image { Source = drawingImage };
|
var image = new Image {Source = drawingImage};
|
||||||
var bitmap = new RenderTargetBitmap(
|
var bitmap = new RenderTargetBitmap(
|
||||||
(int)(LayerGeometry.Bounds.Width * 2.5),
|
(int) (LayerGeometry.Bounds.Width * 2.5),
|
||||||
(int)(LayerGeometry.Bounds.Height * 2.5),
|
(int) (LayerGeometry.Bounds.Height * 2.5),
|
||||||
96,
|
96,
|
||||||
96,
|
96,
|
||||||
PixelFormats.Pbgra32
|
PixelFormats.Pbgra32
|
||||||
@ -119,7 +121,6 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization
|
|||||||
bitmap.Freeze();
|
bitmap.Freeze();
|
||||||
LayerGeometryBitmap = bitmap;
|
LayerGeometryBitmap = bitmap;
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateShapeGeometry()
|
private void CreateShapeGeometry()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user