mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Core - Don't fail entire frame on plugin fail
This commit is contained in:
parent
bb28f2db16
commit
f2c0d63a49
@ -119,12 +119,25 @@ namespace Artemis.Core.Services
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
_frameStopWatch.Restart();
|
_frameStopWatch.Restart();
|
||||||
|
|
||||||
|
// Render all active modules
|
||||||
|
SKTexture texture = _rgbService.OpenRender();
|
||||||
|
|
||||||
lock (_dataModelExpansions)
|
lock (_dataModelExpansions)
|
||||||
{
|
{
|
||||||
// Update all active modules, check Enabled status because it may go false before before the _dataModelExpansions list is updated
|
// Update all active modules, check Enabled status because it may go false before before the _dataModelExpansions list is updated
|
||||||
foreach (BaseDataModelExpansion dataModelExpansion in _dataModelExpansions.Where(e => e.IsEnabled))
|
foreach (BaseDataModelExpansion dataModelExpansion in _dataModelExpansions.Where(e => e.IsEnabled))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
dataModelExpansion.InternalUpdate(args.DeltaTime);
|
dataModelExpansion.InternalUpdate(args.DeltaTime);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_updateExceptions.Add(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
List<Module> modules;
|
List<Module> modules;
|
||||||
lock (_modules)
|
lock (_modules)
|
||||||
@ -137,10 +150,16 @@ namespace Artemis.Core.Services
|
|||||||
|
|
||||||
// Update all active modules
|
// Update all active modules
|
||||||
foreach (Module module in modules)
|
foreach (Module module in modules)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
module.InternalUpdate(args.DeltaTime);
|
module.InternalUpdate(args.DeltaTime);
|
||||||
|
}
|
||||||
// Render all active modules
|
catch (Exception e)
|
||||||
SKTexture texture = _rgbService.OpenRender();
|
{
|
||||||
|
_updateExceptions.Add(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SKCanvas canvas = texture.Surface.Canvas;
|
SKCanvas canvas = texture.Surface.Canvas;
|
||||||
canvas.Save();
|
canvas.Save();
|
||||||
@ -152,8 +171,17 @@ namespace Artemis.Core.Services
|
|||||||
if (!ModuleRenderingDisabled)
|
if (!ModuleRenderingDisabled)
|
||||||
{
|
{
|
||||||
foreach (Module module in modules.Where(m => m.IsActivated))
|
foreach (Module module in modules.Where(m => m.IsActivated))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
module.InternalRender(args.DeltaTime, canvas, texture.ImageInfo);
|
module.InternalRender(args.DeltaTime, canvas, texture.ImageInfo);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_updateExceptions.Add(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
OnFrameRendering(new FrameRenderingEventArgs(canvas, args.DeltaTime, _rgbService.Surface));
|
OnFrameRendering(new FrameRenderingEventArgs(canvas, args.DeltaTime, _rgbService.Surface));
|
||||||
canvas.RestoreToCount(-1);
|
canvas.RestoreToCount(-1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user