forked from Mirror/Ryujinx
6f0395538b
* wip * use embedded window * fix race condition on opengl Windows * fix glx issues on prime nvidia * fix mouse support win32 * clean up * addressed review * addressed review * fix warnings * fix sotware keyboard dialog * Update Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * remove double semi Co-authored-by: gdkchan <gab.dark.100@gmail.com>
27 lines
1,004 B
C#
27 lines
1,004 B
C#
using Ryujinx.Graphics.GAL.Multithreading.Model;
|
|
using Ryujinx.Graphics.GAL.Multithreading.Resources;
|
|
using System;
|
|
|
|
namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Window
|
|
{
|
|
struct WindowPresentCommand : IGALCommand
|
|
{
|
|
public CommandType CommandType => CommandType.WindowPresent;
|
|
private TableRef<ThreadedTexture> _texture;
|
|
private ImageCrop _crop;
|
|
private TableRef<Action> _swapBuffersCallback;
|
|
|
|
public void Set(TableRef<ThreadedTexture> texture, ImageCrop crop, TableRef<Action> swapBuffersCallback)
|
|
{
|
|
_texture = texture;
|
|
_crop = crop;
|
|
_swapBuffersCallback = swapBuffersCallback;
|
|
}
|
|
|
|
public static void Run(ref WindowPresentCommand command, ThreadedRenderer threaded, IRenderer renderer)
|
|
{
|
|
threaded.SignalFrame();
|
|
renderer.Window.Present(command._texture.Get(threaded)?.Base, command._crop, command._swapBuffersCallback.Get(threaded));
|
|
}
|
|
}
|
|
}
|