| 123456789101112131415161718192021222324252627 |
- 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<object>> _swapBuffersCallback;
- public void Set(TableRef<ThreadedTexture> texture, ImageCrop crop, TableRef<Action<object>> 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));
- }
- }
- }
|