Rendering - Improved sampling performance

Plugins - Added update/render time measuring
Settings - Added a way to enable 60/144 FPS 🕵🏻‍♂️
This commit is contained in:
Robert committed 2021-03-22 21:12:58 +01:00
1 parent fc9476247f
commit 97668ee932
8 files changed
+141 -75

No files matched your search

@@ -35,6 +35,9 @@
<Run Text=" at " />
<Run Text="{Binding RenderWidth}" /><Run Text="x" />
<Run Text="{Binding RenderHeight}" />
<Run Text=" - Renderer: "></Run>
<Run Text="{Binding Renderer}"></Run>
</TextBlock>
</Grid>
@@ -20,6 +20,7 @@ namespace Artemis.UI.Screens.Settings.Debug.Tabs
private int _renderWidth;
private int _renderHeight;
private string _frameTargetPath;
private string _renderer;
public RenderDebugViewModel(ICoreService coreService)
{
@@ -51,6 +52,12 @@ namespace Artemis.UI.Screens.Settings.Debug.Tabs
set => SetAndNotify(ref _renderHeight, value);
}
public string Renderer
{
get => _renderer;
set => SetAndNotify(ref _renderer, value);
}
public void SaveFrame()
{
VistaSaveFileDialog dialog = new VistaSaveFileDialog {Filter = "Portable network graphic (*.png)|*.png", Title = "Save render frame"};
@@ -69,6 +76,8 @@ namespace Artemis.UI.Screens.Settings.Debug.Tabs
{
_coreService.FrameRendered += CoreServiceOnFrameRendered;
_coreService.FrameRendering += CoreServiceOnFrameRendering;
Renderer = Constants.ManagedGraphicsContext != null ? Constants.ManagedGraphicsContext.GetType().Name : "Software";
base.OnActivate();
}
@@ -88,8 +97,6 @@ namespace Artemis.UI.Screens.Settings.Debug.Tabs
RenderWidth = bitmapInfo.Width;
// ReSharper disable twice CompareOfFloatsByEqualityOperator
if (CurrentFrame is not WriteableBitmap writable || writable.Width != bitmapInfo.Width || writable.Height != bitmapInfo.Height)
{
CurrentFrame = e.Texture.Surface.Snapshot().ToWriteableBitmap();
@@ -42,7 +42,9 @@ namespace Artemis.UI.Screens.Settings.Tabs.General
IUpdateService updateService,
IPluginManagementService pluginManagementService,
IMessageService messageService,
IRegistrationService registrationService)
IRegistrationService registrationService,
ICoreService coreService
)
{
DisplayName = "GENERAL";
@@ -64,6 +66,11 @@ namespace Artemis.UI.Screens.Settings.Tabs.General
TargetFrameRates = new List<Tuple<string, int>>();
for (int i = 10; i <= 30; i += 5)
TargetFrameRates.Add(new Tuple<string, int>(i + " FPS", i));
if (coreService.StartupArguments.Contains("--pcmr"))
{
TargetFrameRates.Add(new Tuple<string, int>("60 FPS (lol)", 60));
TargetFrameRates.Add(new Tuple<string, int>("144 FPS (omegalol)", 144));
}
List<LayerBrushProvider> layerBrushProviders = pluginManagementService.GetFeaturesOfType<LayerBrushProvider>();