aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Hansen <emmausssss@gmail.com>2022-05-16 21:10:29 +0000
committerGitHub <noreply@github.com>2022-05-16 18:10:29 -0300
commit7b9c4757dd09b9ac993559f7629bcc536a83a975 (patch)
tree3bb1adf398a4e0c63e377088ccc8407ec2ce0e04
parentb8fc97adf250444e75328fee4e768e28f45ebf59 (diff)
UI - Scale end framebuffer blit (#3342)1.1.130
* Scale end framebuffer blit * fix * fix * apply changes to avalonia
-rw-r--r--Ryujinx.Ava/AppHost.cs4
-rw-r--r--Ryujinx.Ava/Ui/Controls/RendererControl.cs9
-rw-r--r--Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs4
-rw-r--r--Ryujinx/Ui/GLRenderer.cs8
-rw-r--r--Ryujinx/Ui/RendererWidgetBase.cs13
5 files changed, 18 insertions, 20 deletions
diff --git a/Ryujinx.Ava/AppHost.cs b/Ryujinx.Ava/AppHost.cs
index 30d72580..09163bd6 100644
--- a/Ryujinx.Ava/AppHost.cs
+++ b/Ryujinx.Ava/AppHost.cs
@@ -177,7 +177,7 @@ namespace Ryujinx.Ava
{
if (_renderer != null)
{
- double scale = Program.WindowScaleFactor;
+ double scale = _parent.PlatformImpl.RenderScaling;
_renderer.Window.SetSize((int)(size.Width * scale), (int)(size.Height * scale));
}
}
@@ -809,7 +809,7 @@ namespace Ryujinx.Ava
Width = (int)Renderer.Bounds.Width;
Height = (int)Renderer.Bounds.Height;
- _renderer.Window.SetSize((int)(Width * Program.WindowScaleFactor), (int)(Height * Program.WindowScaleFactor));
+ _renderer.Window.SetSize((int)(Width * _parent.PlatformImpl.RenderScaling), (int)(Height * _parent.PlatformImpl.RenderScaling));
Device.Gpu.Renderer.RunLoop(() =>
{
diff --git a/Ryujinx.Ava/Ui/Controls/RendererControl.cs b/Ryujinx.Ava/Ui/Controls/RendererControl.cs
index 8321a04e..a728946c 100644
--- a/Ryujinx.Ava/Ui/Controls/RendererControl.cs
+++ b/Ryujinx.Ava/Ui/Controls/RendererControl.cs
@@ -73,10 +73,13 @@ namespace Ryujinx.Ava.Ui.Controls
{
SizeChanged?.Invoke(this, rect.Size);
- RenderSize = rect.Size * Program.WindowScaleFactor;
+ if (!rect.IsEmpty)
+ {
+ RenderSize = rect.Size * VisualRoot.RenderScaling;
- _glDrawOperation?.Dispose();
- _glDrawOperation = new GlDrawOperation(this);
+ _glDrawOperation?.Dispose();
+ _glDrawOperation = new GlDrawOperation(this);
+ }
}
public override void Render(DrawingContext context)
diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs
index 33a29be7..016fed59 100644
--- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs
+++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs
@@ -123,10 +123,6 @@ namespace Ryujinx.Ava.Ui.Windows
CheckLaunchState();
}
- if (OperatingSystem.IsLinux())
- {
- Program.WindowScaleFactor = this.PlatformImpl.RenderScaling;
- }
_rendererWaitEvent = new AutoResetEvent(false);
}
diff --git a/Ryujinx/Ui/GLRenderer.cs b/Ryujinx/Ui/GLRenderer.cs
index e01d7d79..45eb53cb 100644
--- a/Ryujinx/Ui/GLRenderer.cs
+++ b/Ryujinx/Ui/GLRenderer.cs
@@ -114,12 +114,12 @@ namespace Ryujinx.Ui
GL.BlitFramebuffer(0,
0,
- AllocatedWidth,
- AllocatedHeight,
+ WindowWidth,
+ WindowHeight,
0,
0,
- AllocatedWidth,
- AllocatedHeight,
+ WindowWidth,
+ WindowHeight,
ClearBufferMask.ColorBufferBit,
BlitFramebufferFilter.Linear);
}
diff --git a/Ryujinx/Ui/RendererWidgetBase.cs b/Ryujinx/Ui/RendererWidgetBase.cs
index fc3db50b..0d82a5c5 100644
--- a/Ryujinx/Ui/RendererWidgetBase.cs
+++ b/Ryujinx/Ui/RendererWidgetBase.cs
@@ -41,6 +41,8 @@ namespace Ryujinx.Ui
public IRenderer Renderer { get; private set; }
public bool ScreenshotRequested { get; set; }
+ protected int WindowWidth { get; private set; }
+ protected int WindowHeight { get; private set; }
public static event EventHandler<StatusUpdatedEventArgs> StatusUpdatedEvent;
@@ -71,9 +73,6 @@ namespace Ryujinx.Ui
private IKeyboard _keyboardInterface;
private GraphicsDebugLevel _glLogLevel;
private string _gpuVendorName;
-
- private int _windowHeight;
- private int _windowWidth;
private bool _isMouseInClient;
public RendererWidgetBase(InputManager inputManager, GraphicsDebugLevel glLogLevel)
@@ -223,10 +222,10 @@ namespace Ryujinx.Ui
Gdk.Monitor monitor = Display.GetMonitorAtWindow(Window);
- _windowWidth = evnt.Width * monitor.ScaleFactor;
- _windowHeight = evnt.Height * monitor.ScaleFactor;
+ WindowWidth = evnt.Width * monitor.ScaleFactor;
+ WindowHeight = evnt.Height * monitor.ScaleFactor;
- Renderer?.Window.SetSize(_windowWidth, _windowHeight);
+ Renderer?.Window.SetSize(WindowWidth, WindowHeight);
return result;
}
@@ -307,7 +306,7 @@ namespace Ryujinx.Ui
}
Renderer = renderer;
- Renderer?.Window.SetSize(_windowWidth, _windowHeight);
+ Renderer?.Window.SetSize(WindowWidth, WindowHeight);
if (Renderer != null)
{