Profiles - Added toggle to enable/disable folders, layers and effects

Profiles - Fixed folders not saving they children properly
UI - Show version and frame time in window title
This commit is contained in:
SpoinkyNL committed 2020-06-18 19:08:46 +02:00
1 parent 7921a4f932
commit 0903865c7d
27 files changed
+315 -97

No files matched your search

+13 -2
View File
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Artemis.Core.Events;
using Artemis.Core.Exceptions;
using Artemis.Core.JsonConverters;
@@ -23,11 +24,12 @@ namespace Artemis.Core.Services
public class CoreService : ICoreService
{
private readonly ILogger _logger;
private readonly PluginSetting<LogEventLevel> _loggingLevel;
private readonly IPluginService _pluginService;
private readonly IProfileService _profileService;
private readonly IRgbService _rgbService;
private readonly ISurfaceService _surfaceService;
private readonly PluginSetting<LogEventLevel> _loggingLevel;
private readonly Stopwatch _frameStopWatch;
private List<Module> _modules;
// ReSharper disable once UnusedParameter.Local - Storage migration service is injected early to ensure it runs before anything else
@@ -48,10 +50,13 @@ namespace Artemis.Core.Services
_modules = _pluginService.GetPluginsOfType<Module>();
_pluginService.PluginEnabled += (sender, args) => _modules = _pluginService.GetPluginsOfType<Module>();
_pluginService.PluginDisabled += (sender, args) => _modules = _pluginService.GetPluginsOfType<Module>();
_frameStopWatch = new Stopwatch();
ConfigureJsonConvert();
}
public TimeSpan FrameTime { get; private set; }
public bool ModuleUpdatingDisabled { get; set; }
public bool ModuleRenderingDisabled { get; set; }
@@ -117,6 +122,7 @@ namespace Artemis.Core.Services
try
{
_frameStopWatch.Restart();
if (!ModuleUpdatingDisabled && _modules != null)
{
lock (_modules)
@@ -157,6 +163,11 @@ namespace Artemis.Core.Services
{
throw new ArtemisCoreException("Exception during update", e);
}
finally
{
_frameStopWatch.Stop();
FrameTime = _frameStopWatch.Elapsed;
}
}
private void SurfaceOnUpdated(UpdatedEventArgs args)
@@ -10,6 +10,11 @@ namespace Artemis.Core.Services.Interfaces
/// </summary>
bool IsInitialized { get; }
/// <summary>
/// The time the last frame took to render
/// </summary>
TimeSpan FrameTime { get; }
/// <summary>
/// Gets or sets whether modules are updated each frame by calling their Update method
/// </summary>
+4 -9
View File
@@ -86,6 +86,7 @@ namespace Artemis.Core.Services
effect.ProfileElement = effectElement;
effect.EntityId = Guid.NewGuid();
effect.Enabled = true;
effect.Order = effectElement.LayerEffects.Count + 1;
effect.Descriptor = layerEffectDescriptor;
@@ -109,15 +110,8 @@ namespace Artemis.Core.Services
var layerEffectProviders = _pluginService.GetPluginsOfType<LayerEffectProvider>();
var descriptors = layerEffectProviders.SelectMany(l => l.LayerEffectDescriptors).ToList();
List<LayerEffectEntity> entities;
if (effectElement is Layer layer)
entities = layer.LayerEntity.LayerEffects.OrderByDescending(e => e.Order).ToList();
else if (effectElement is Folder folder)
entities = folder.FolderEntity.LayerEffects.OrderByDescending(e => e.Order).ToList();
else
throw new ArtemisCoreException("Provided effect element is of an unsupported type, must be Layer of Folder");
var entities = effectElement.EffectsEntity.LayerEffects.OrderByDescending(e => e.Order).ToList();
foreach (var layerEffectEntity in entities)
{
// Get a matching descriptor
@@ -133,6 +127,7 @@ namespace Artemis.Core.Services
effect.EntityId = layerEffectEntity.Id;
effect.Order = layerEffectEntity.Order;
effect.Name = layerEffectEntity.Name;
effect.Enabled = layerEffectEntity.Enabled;
effect.Descriptor = descriptor;
effect.Initialize(this);