mirror of
https://git.ryujinx.app/kenji-nx/ryujinx.git
synced 2025-12-12 19:37:06 +00:00
ObjectPool now uses ConcurrentBag instead if ConcurrentStack, as it has a smaller memory footprint. Fix compiler warnings related to Audio Command Pools. Switch gpu command initialization to use pointers, that way skipping the allocation of the command which is unnecessary. Skip byte array allocation in Ioctl2/3 if it isn't needed (if the source data is all continuous we don't need to copy it to make it continuous).
44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using Ryujinx.Graphics.GAL.Multithreading.Commands.Window;
|
|
using Ryujinx.Graphics.GAL.Multithreading.Model;
|
|
using Ryujinx.Graphics.GAL.Multithreading.Resources;
|
|
using System;
|
|
|
|
namespace Ryujinx.Graphics.GAL.Multithreading
|
|
{
|
|
public class ThreadedWindow : IWindow
|
|
{
|
|
private readonly ThreadedRenderer _renderer;
|
|
private readonly IRenderer _impl;
|
|
|
|
public ThreadedWindow(ThreadedRenderer renderer, IRenderer impl)
|
|
{
|
|
_renderer = renderer;
|
|
_impl = impl;
|
|
}
|
|
|
|
public unsafe void Present(ITexture texture, ImageCrop crop, Action swapBuffersCallback)
|
|
{
|
|
// If there's already a frame in the pipeline, wait for it to be presented first.
|
|
// This is a multithread rate limit - we can't be more than one frame behind the command queue.
|
|
|
|
_renderer.WaitForFrame();
|
|
_renderer.New<WindowPresentCommand>()->Set(new TableRef<ThreadedTexture>(_renderer, texture as ThreadedTexture), crop, new TableRef<Action>(_renderer, swapBuffersCallback));
|
|
_renderer.QueueCommand();
|
|
}
|
|
|
|
public void SetSize(int width, int height)
|
|
{
|
|
_impl.Window.SetSize(width, height);
|
|
}
|
|
|
|
public void ChangeVSyncMode(VSyncMode vSyncMode) { }
|
|
|
|
public void SetAntiAliasing(AntiAliasing effect) { }
|
|
|
|
public void SetScalingFilter(ScalingFilter type) { }
|
|
|
|
public void SetScalingFilterLevel(float level) { }
|
|
|
|
public void SetColorSpacePassthrough(bool colorSpacePassthroughEnabled) { }
|
|
}
|
|
}
|