mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2024-12-27 11:03:04 +00:00
Replacing Abstract Types with Concrete Types
This commit is contained in:
parent
7969fb6bba
commit
231fb01dc1
41 changed files with 103 additions and 90 deletions
|
@ -5,6 +5,7 @@ using Ryujinx.Common.Memory;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace ARMeilleure.CodeGen.Arm64
|
namespace ARMeilleure.CodeGen.Arm64
|
||||||
{
|
{
|
||||||
|
@ -14,7 +15,7 @@ namespace ARMeilleure.CodeGen.Arm64
|
||||||
private const int CbnzInstLength = 4;
|
private const int CbnzInstLength = 4;
|
||||||
private const int LdrLitInstLength = 4;
|
private const int LdrLitInstLength = 4;
|
||||||
|
|
||||||
private readonly Stream _stream;
|
private readonly RecyclableMemoryStream _stream;
|
||||||
|
|
||||||
public int StreamOffset => (int)_stream.Length;
|
public int StreamOffset => (int)_stream.Length;
|
||||||
|
|
||||||
|
|
|
@ -266,7 +266,7 @@ namespace ARMeilleure.Instructions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Exception InvalidOpCodeType(OpCode opCode)
|
private static InvalidOperationException InvalidOpCodeType(OpCode opCode)
|
||||||
{
|
{
|
||||||
return new InvalidOperationException($"Invalid OpCode type \"{opCode?.GetType().Name ?? "null"}\".");
|
return new InvalidOperationException($"Invalid OpCode type \"{opCode?.GetType().Name ?? "null"}\".");
|
||||||
}
|
}
|
||||||
|
|
|
@ -717,7 +717,7 @@ namespace ARMeilleure.Instructions
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Exception InvalidOpCodeType(OpCode opCode)
|
private static InvalidOperationException InvalidOpCodeType(OpCode opCode)
|
||||||
{
|
{
|
||||||
return new InvalidOperationException($"Invalid OpCode type \"{opCode?.GetType().Name ?? "null"}\".");
|
return new InvalidOperationException($"Invalid OpCode type \"{opCode?.GetType().Name ?? "null"}\".");
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
using Microsoft.IO;
|
||||||
using static ARMeilleure.Translation.PTC.PtcFormatter;
|
using static ARMeilleure.Translation.PTC.PtcFormatter;
|
||||||
using Timer = System.Timers.Timer;
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
|
@ -189,7 +190,7 @@ namespace ARMeilleure.Translation.PTC
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
Debug.Assert(stream.Seek(0L, SeekOrigin.Begin) == 0L && stream.Length == 0L);
|
Debug.Assert(stream.Seek(0L, SeekOrigin.Begin) == 0L && stream.Length == 0L);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace Ryujinx.Common.Logging.Targets
|
||||||
{
|
{
|
||||||
public class ConsoleLogTarget : ILogTarget
|
public class ConsoleLogTarget : ILogTarget
|
||||||
{
|
{
|
||||||
private readonly ILogFormatter _formatter;
|
private readonly DefaultLogFormatter _formatter;
|
||||||
|
|
||||||
private readonly string _name;
|
private readonly string _name;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace Ryujinx.Common.Logging.Targets
|
||||||
public class FileLogTarget : ILogTarget
|
public class FileLogTarget : ILogTarget
|
||||||
{
|
{
|
||||||
private readonly StreamWriter _logWriter;
|
private readonly StreamWriter _logWriter;
|
||||||
private readonly ILogFormatter _formatter;
|
private readonly DefaultLogFormatter _formatter;
|
||||||
private readonly string _name;
|
private readonly string _name;
|
||||||
|
|
||||||
string ILogTarget.Name { get => _name; }
|
string ILogTarget.Name { get => _name; }
|
||||||
|
|
|
@ -12,8 +12,8 @@ namespace Ryujinx.Common.SystemInterop
|
||||||
public partial class StdErrAdapter : IDisposable
|
public partial class StdErrAdapter : IDisposable
|
||||||
{
|
{
|
||||||
private bool _disposable;
|
private bool _disposable;
|
||||||
private Stream _pipeReader;
|
private FileStream _pipeReader;
|
||||||
private Stream _pipeWriter;
|
private FileStream _pipeWriter;
|
||||||
private CancellationTokenSource _cancellationTokenSource;
|
private CancellationTokenSource _cancellationTokenSource;
|
||||||
private Task _worker;
|
private Task _worker;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ namespace Ryujinx.Common.SystemInterop
|
||||||
[SupportedOSPlatform("macos")]
|
[SupportedOSPlatform("macos")]
|
||||||
private async Task EventWorkerAsync(CancellationToken cancellationToken)
|
private async Task EventWorkerAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
using TextReader reader = new StreamReader(_pipeReader, leaveOpen: true);
|
using StreamReader reader = new(_pipeReader, leaveOpen: true);
|
||||||
string line;
|
string line;
|
||||||
while (cancellationToken.IsCancellationRequested == false && (line = await reader.ReadLineAsync(cancellationToken)) != null)
|
while (cancellationToken.IsCancellationRequested == false && (line = await reader.ReadLineAsync(cancellationToken)) != null)
|
||||||
{
|
{
|
||||||
|
@ -92,7 +92,7 @@ namespace Ryujinx.Common.SystemInterop
|
||||||
|
|
||||||
[SupportedOSPlatform("linux")]
|
[SupportedOSPlatform("linux")]
|
||||||
[SupportedOSPlatform("macos")]
|
[SupportedOSPlatform("macos")]
|
||||||
private static Stream CreateFileDescriptorStream(int fd)
|
private static FileStream CreateFileDescriptorStream(int fd)
|
||||||
{
|
{
|
||||||
return new FileStream(
|
return new FileStream(
|
||||||
new SafeFileHandle(fd, ownsHandle: true),
|
new SafeFileHandle(fd, ownsHandle: true),
|
||||||
|
|
|
@ -3,6 +3,7 @@ using Ryujinx.Common.Memory;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.Common.Utilities
|
namespace Ryujinx.Common.Utilities
|
||||||
{
|
{
|
||||||
|
@ -58,7 +59,7 @@ namespace Ryujinx.Common.Utilities
|
||||||
|
|
||||||
public static async Task<byte[]> StreamToBytesAsync(Stream input, CancellationToken cancellationToken = default)
|
public static async Task<byte[]> StreamToBytesAsync(Stream input, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
|
|
||||||
await input.CopyToAsync(stream, cancellationToken);
|
await input.CopyToAsync(stream, cancellationToken);
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ namespace Ryujinx.Cpu.LightningJit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IStackWalker CreateStackWalker()
|
private static StackWalker CreateStackWalker()
|
||||||
{
|
{
|
||||||
if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||||
{
|
{
|
||||||
|
|
|
@ -379,8 +379,8 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
||||||
/// <param name="hash">Code and constant buffer data hash</param>
|
/// <param name="hash">Code and constant buffer data hash</param>
|
||||||
/// <returns>Entry index</returns>
|
/// <returns>Entry index</returns>
|
||||||
private int WriteNewEntry(
|
private int WriteNewEntry(
|
||||||
Stream tocFileStream,
|
FileStream tocFileStream,
|
||||||
Stream dataFileStream,
|
FileStream dataFileStream,
|
||||||
ref TocHeader header,
|
ref TocHeader header,
|
||||||
ReadOnlySpan<byte> data,
|
ReadOnlySpan<byte> data,
|
||||||
ReadOnlySpan<byte> cb1Data,
|
ReadOnlySpan<byte> cb1Data,
|
||||||
|
|
|
@ -737,7 +737,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
||||||
/// <param name="magic">Magic value to be written</param>
|
/// <param name="magic">Magic value to be written</param>
|
||||||
/// <param name="codegenVersion">Shader codegen version, only valid for the host file</param>
|
/// <param name="codegenVersion">Shader codegen version, only valid for the host file</param>
|
||||||
/// <param name="timestamp">File creation timestamp</param>
|
/// <param name="timestamp">File creation timestamp</param>
|
||||||
private static void CreateToc(Stream tocFileStream, ref TocHeader header, uint magic, uint codegenVersion, ulong timestamp)
|
private static void CreateToc(FileStream tocFileStream, ref TocHeader header, uint magic, uint codegenVersion, ulong timestamp)
|
||||||
{
|
{
|
||||||
BinarySerializer writer = new(tocFileStream);
|
BinarySerializer writer = new(tocFileStream);
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ using Ryujinx.Graphics.Shader;
|
||||||
using Ryujinx.Graphics.Shader.Translation;
|
using Ryujinx.Graphics.Shader.Translation;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
||||||
{
|
{
|
||||||
|
@ -12,7 +13,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
||||||
{
|
{
|
||||||
public static byte[] Pack(ShaderSource[] sources)
|
public static byte[] Pack(ShaderSource[] sources)
|
||||||
{
|
{
|
||||||
using MemoryStream output = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream output = MemoryStreamManager.Shared.GetStream();
|
||||||
|
|
||||||
output.Write(sources.Length);
|
output.Write(sources.Length);
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
private bool _updateSize;
|
private bool _updateSize;
|
||||||
private int _copyFramebufferHandle;
|
private int _copyFramebufferHandle;
|
||||||
private IPostProcessingEffect _antiAliasing;
|
private IPostProcessingEffect _antiAliasing;
|
||||||
private IScalingFilter _scalingFilter;
|
private FsrScalingFilter _scalingFilter;
|
||||||
private bool _isLinear;
|
private bool _isLinear;
|
||||||
private AntiAliasing _currentAntiAliasing;
|
private AntiAliasing _currentAntiAliasing;
|
||||||
private bool _updateEffect;
|
private bool _updateEffect;
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly IReadOnlyDictionary<int, AttributeEntry> _attributes;
|
private static readonly Dictionary<int, AttributeEntry> _attributes;
|
||||||
private static readonly IReadOnlyDictionary<int, AttributeEntry> _attributesPerPatch;
|
private static readonly IReadOnlyDictionary<int, AttributeEntry> _attributesPerPatch;
|
||||||
|
|
||||||
static AttributeMap()
|
static AttributeMap()
|
||||||
|
@ -55,7 +55,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
_attributesPerPatch = CreatePerPatchMap();
|
_attributesPerPatch = CreatePerPatchMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IReadOnlyDictionary<int, AttributeEntry> CreateMap()
|
private static Dictionary<int, AttributeEntry> CreateMap()
|
||||||
{
|
{
|
||||||
var map = new Dictionary<int, AttributeEntry>();
|
var map = new Dictionary<int, AttributeEntry>();
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IReadOnlyDictionary<int, AttributeEntry> CreatePerPatchMap()
|
private static Dictionary<int, AttributeEntry> CreatePerPatchMap()
|
||||||
{
|
{
|
||||||
var map = new Dictionary<int, AttributeEntry>();
|
var map = new Dictionary<int, AttributeEntry>();
|
||||||
|
|
||||||
|
|
|
@ -32,29 +32,29 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
private readonly PipelineHelperShader _pipeline;
|
private readonly PipelineHelperShader _pipeline;
|
||||||
private readonly ISampler _samplerLinear;
|
private readonly ISampler _samplerLinear;
|
||||||
private readonly ISampler _samplerNearest;
|
private readonly ISampler _samplerNearest;
|
||||||
private readonly IProgram _programColorBlit;
|
private readonly ShaderCollection _programColorBlit;
|
||||||
private readonly IProgram _programColorBlitMs;
|
private readonly ShaderCollection _programColorBlitMs;
|
||||||
private readonly IProgram _programColorBlitClearAlpha;
|
private readonly ShaderCollection _programColorBlitClearAlpha;
|
||||||
private readonly IProgram _programColorClearF;
|
private readonly ShaderCollection _programColorClearF;
|
||||||
private readonly IProgram _programColorClearSI;
|
private readonly ShaderCollection _programColorClearSI;
|
||||||
private readonly IProgram _programColorClearUI;
|
private readonly ShaderCollection _programColorClearUI;
|
||||||
private readonly IProgram _programDepthStencilClear;
|
private readonly ShaderCollection _programDepthStencilClear;
|
||||||
private readonly IProgram _programStrideChange;
|
private readonly ShaderCollection _programStrideChange;
|
||||||
private readonly IProgram _programConvertD32S8ToD24S8;
|
private readonly IProgram _programConvertD32S8ToD24S8;
|
||||||
private readonly IProgram _programConvertIndexBuffer;
|
private readonly ShaderCollection _programConvertIndexBuffer;
|
||||||
private readonly IProgram _programConvertIndirectData;
|
private readonly ShaderCollection _programConvertIndirectData;
|
||||||
private readonly IProgram _programColorCopyShortening;
|
private readonly ShaderCollection _programColorCopyShortening;
|
||||||
private readonly IProgram _programColorCopyToNonMs;
|
private readonly ShaderCollection _programColorCopyToNonMs;
|
||||||
private readonly IProgram _programColorCopyWidening;
|
private readonly ShaderCollection _programColorCopyWidening;
|
||||||
private readonly IProgram _programColorDrawToMs;
|
private readonly ShaderCollection _programColorDrawToMs;
|
||||||
private readonly IProgram _programDepthBlit;
|
private readonly ShaderCollection _programDepthBlit;
|
||||||
private readonly IProgram _programDepthBlitMs;
|
private readonly ShaderCollection _programDepthBlitMs;
|
||||||
private readonly IProgram _programDepthDrawToMs;
|
private readonly ShaderCollection _programDepthDrawToMs;
|
||||||
private readonly IProgram _programDepthDrawToNonMs;
|
private readonly ShaderCollection _programDepthDrawToNonMs;
|
||||||
private readonly IProgram _programStencilBlit;
|
private readonly ShaderCollection _programStencilBlit;
|
||||||
private readonly IProgram _programStencilBlitMs;
|
private readonly ShaderCollection _programStencilBlitMs;
|
||||||
private readonly IProgram _programStencilDrawToMs;
|
private readonly ShaderCollection _programStencilDrawToMs;
|
||||||
private readonly IProgram _programStencilDrawToNonMs;
|
private readonly ShaderCollection _programStencilDrawToNonMs;
|
||||||
|
|
||||||
public HelperShader(VulkanRenderer gd, Device device)
|
public HelperShader(VulkanRenderer gd, Device device)
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
private AntiAliasing _currentAntiAliasing;
|
private AntiAliasing _currentAntiAliasing;
|
||||||
private bool _updateEffect;
|
private bool _updateEffect;
|
||||||
private IPostProcessingEffect _effect;
|
private IPostProcessingEffect _effect;
|
||||||
private IScalingFilter _scalingFilter;
|
private FsrScalingFilter _scalingFilter;
|
||||||
private bool _isLinear;
|
private bool _isLinear;
|
||||||
private float _scalingFilterLevel;
|
private float _scalingFilterLevel;
|
||||||
private bool _updateScalingFilter;
|
private bool _updateScalingFilter;
|
||||||
|
|
|
@ -345,7 +345,7 @@ namespace Ryujinx.Modules
|
||||||
|
|
||||||
using HttpResponseMessage response = client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead).Result;
|
using HttpResponseMessage response = client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead).Result;
|
||||||
using Stream remoteFileStream = response.Content.ReadAsStreamAsync().Result;
|
using Stream remoteFileStream = response.Content.ReadAsStreamAsync().Result;
|
||||||
using Stream updateFileStream = File.Open(updateFile, FileMode.Create);
|
using FileStream updateFileStream = File.Open(updateFile, FileMode.Create);
|
||||||
|
|
||||||
long totalBytes = response.Content.Headers.ContentLength.Value;
|
long totalBytes = response.Content.Headers.ContentLength.Value;
|
||||||
long byteWritten = 0;
|
long byteWritten = 0;
|
||||||
|
|
|
@ -18,6 +18,7 @@ using System.Buffers.Binary;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using Microsoft.IO;
|
||||||
using Image = SixLabors.ImageSharp.Image;
|
using Image = SixLabors.ImageSharp.Image;
|
||||||
|
|
||||||
namespace Ryujinx.UI.Windows
|
namespace Ryujinx.UI.Windows
|
||||||
|
@ -139,7 +140,7 @@ namespace Ryujinx.UI.Windows
|
||||||
romfs.OpenFile(ref file.Ref, ("/" + item.FullPath).ToU8Span(), OpenMode.Read).ThrowIfFailure();
|
romfs.OpenFile(ref file.Ref, ("/" + item.FullPath).ToU8Span(), OpenMode.Read).ThrowIfFailure();
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using MemoryStream streamPng = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream streamPng = MemoryStreamManager.Shared.GetStream();
|
||||||
file.Get.AsStream().CopyTo(stream);
|
file.Get.AsStream().CopyTo(stream);
|
||||||
|
|
||||||
stream.Position = 0;
|
stream.Position = 0;
|
||||||
|
@ -168,7 +169,7 @@ namespace Ryujinx.UI.Windows
|
||||||
|
|
||||||
private byte[] ProcessImage(byte[] data)
|
private byte[] ProcessImage(byte[] data)
|
||||||
{
|
{
|
||||||
using MemoryStream streamJpg = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream streamJpg = MemoryStreamManager.Shared.GetStream();
|
||||||
|
|
||||||
Image avatarImage = Image.Load(data, new PngDecoder());
|
Image avatarImage = Image.Load(data, new PngDecoder());
|
||||||
|
|
||||||
|
@ -222,7 +223,7 @@ namespace Ryujinx.UI.Windows
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] DecompressYaz0(Stream stream)
|
private static byte[] DecompressYaz0(MemoryStream stream)
|
||||||
{
|
{
|
||||||
using BinaryReader reader = new(stream);
|
using BinaryReader reader = new(stream);
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace Ryujinx.UI.Windows
|
||||||
#pragma warning restore CS0649, IDE0044
|
#pragma warning restore CS0649, IDE0044
|
||||||
|
|
||||||
private readonly MainWindow _mainWindow;
|
private readonly MainWindow _mainWindow;
|
||||||
private readonly IGamepadDriver _gtk3KeyboardDriver;
|
private readonly GTK3KeyboardDriver _gtk3KeyboardDriver;
|
||||||
private IGamepad _selectedGamepad;
|
private IGamepad _selectedGamepad;
|
||||||
private bool _mousePressed;
|
private bool _mousePressed;
|
||||||
private bool _middleMousePressed;
|
private bool _middleMousePressed;
|
||||||
|
|
|
@ -12,6 +12,7 @@ using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.IO;
|
||||||
using Image = SixLabors.ImageSharp.Image;
|
using Image = SixLabors.ImageSharp.Image;
|
||||||
|
|
||||||
namespace Ryujinx.UI.Windows
|
namespace Ryujinx.UI.Windows
|
||||||
|
@ -181,7 +182,7 @@ namespace Ryujinx.UI.Windows
|
||||||
|
|
||||||
image.Mutate(x => x.Resize(256, 256));
|
image.Mutate(x => x.Resize(256, 256));
|
||||||
|
|
||||||
using MemoryStream streamJpg = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream streamJpg = MemoryStreamManager.Shared.GetStream();
|
||||||
|
|
||||||
image.SaveAsJpeg(streamJpg);
|
image.SaveAsJpeg(streamJpg);
|
||||||
|
|
||||||
|
|
|
@ -571,7 +571,7 @@ namespace Ryujinx.HLE.FileSystem
|
||||||
return file.Release();
|
return file.Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Stream GetZipStream(ZipArchiveEntry entry)
|
private static MemoryStream GetZipStream(ZipArchiveEntry entry)
|
||||||
{
|
{
|
||||||
MemoryStream dest = MemoryStreamManager.Shared.GetStream();
|
MemoryStream dest = MemoryStreamManager.Shared.GetStream();
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Applets.Browser
|
namespace Ryujinx.HLE.HOS.Applets.Browser
|
||||||
{
|
{
|
||||||
|
@ -70,7 +71,7 @@ namespace Ryujinx.HLE.HOS.Applets.Browser
|
||||||
|
|
||||||
private static byte[] BuildResponseOld(WebCommonReturnValue result)
|
private static byte[] BuildResponseOld(WebCommonReturnValue result)
|
||||||
{
|
{
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
writer.WriteStruct(result);
|
writer.WriteStruct(result);
|
||||||
|
|
||||||
|
@ -78,7 +79,7 @@ namespace Ryujinx.HLE.HOS.Applets.Browser
|
||||||
}
|
}
|
||||||
private byte[] BuildResponseNew(List<BrowserOutput> outputArguments)
|
private byte[] BuildResponseNew(List<BrowserOutput> outputArguments)
|
||||||
{
|
{
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
writer.WriteStruct(new WebArgHeader
|
writer.WriteStruct(new WebArgHeader
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using Microsoft.IO;
|
||||||
using static Ryujinx.HLE.HOS.Services.Hid.HidServer.HidUtils;
|
using static Ryujinx.HLE.HOS.Services.Hid.HidServer.HidUtils;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Applets
|
namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
@ -124,7 +125,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
|
||||||
private static byte[] BuildResponse(ControllerSupportResultInfo result)
|
private static byte[] BuildResponse(ControllerSupportResultInfo result)
|
||||||
{
|
{
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.Write(MemoryMarshal.AsBytes(MemoryMarshal.CreateReadOnlySpan(ref result, Unsafe.SizeOf<ControllerSupportResultInfo>())));
|
writer.Write(MemoryMarshal.AsBytes(MemoryMarshal.CreateReadOnlySpan(ref result, Unsafe.SizeOf<ControllerSupportResultInfo>())));
|
||||||
|
@ -134,7 +135,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
|
|
||||||
private static byte[] BuildResponse()
|
private static byte[] BuildResponse()
|
||||||
{
|
{
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.Write((ulong)ResultCode.Success);
|
writer.Write((ulong)ResultCode.Success);
|
||||||
|
|
|
@ -3,6 +3,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc;
|
||||||
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Applets
|
namespace Ryujinx.HLE.HOS.Applets
|
||||||
{
|
{
|
||||||
|
@ -46,7 +47,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
{
|
{
|
||||||
UserProfile currentUser = _system.AccountManager.LastOpenedUser;
|
UserProfile currentUser = _system.AccountManager.LastOpenedUser;
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.Write((ulong)PlayerSelectResult.Success);
|
writer.Write((ulong)PlayerSelectResult.Success);
|
||||||
|
|
|
@ -252,7 +252,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// <exception-spec> ::= Do # non-throwing exception-specification (e.g., noexcept, throw())
|
// <exception-spec> ::= Do # non-throwing exception-specification (e.g., noexcept, throw())
|
||||||
// ::= DO <expression> E # computed (instantiation-dependent) noexcept
|
// ::= DO <expression> E # computed (instantiation-dependent) noexcept
|
||||||
// ::= Dw <type>+ E # dynamic exception specification with instantiation-dependent types
|
// ::= Dw <type>+ E # dynamic exception specification with instantiation-dependent types
|
||||||
private BaseNode ParseFunctionType()
|
private FunctionType ParseFunctionType()
|
||||||
{
|
{
|
||||||
Cv cvQualifiers = ParseCvQualifiers();
|
Cv cvQualifiers = ParseCvQualifiers();
|
||||||
|
|
||||||
|
@ -347,7 +347,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
|
|
||||||
// <array-type> ::= A <positive dimension number> _ <element type>
|
// <array-type> ::= A <positive dimension number> _ <element type>
|
||||||
// ::= A [<dimension expression>] _ <element type>
|
// ::= A [<dimension expression>] _ <element type>
|
||||||
private BaseNode ParseArrayType()
|
private ArrayType ParseArrayType()
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("A"))
|
if (!ConsumeIf("A"))
|
||||||
{
|
{
|
||||||
|
@ -945,7 +945,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
}
|
}
|
||||||
|
|
||||||
// <source-name> ::= <positive length number> <identifier>
|
// <source-name> ::= <positive length number> <identifier>
|
||||||
private BaseNode ParseSourceName()
|
private NameType ParseSourceName()
|
||||||
{
|
{
|
||||||
int length = ParsePositiveNumber();
|
int length = ParsePositiveNumber();
|
||||||
if (Count() < length || length <= 0)
|
if (Count() < length || length <= 0)
|
||||||
|
@ -1320,7 +1320,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// ::= D0 # deleting destructor
|
// ::= D0 # deleting destructor
|
||||||
// ::= D1 # complete object destructor
|
// ::= D1 # complete object destructor
|
||||||
// ::= D2 # base object destructor
|
// ::= D2 # base object destructor
|
||||||
private BaseNode ParseCtorDtorName(NameParserContext context, BaseNode prev)
|
private CtorDtorNameType ParseCtorDtorName(NameParserContext context, BaseNode prev)
|
||||||
{
|
{
|
||||||
if (prev.Type == NodeType.SpecialSubstitution && prev is SpecialSubstitution substitution)
|
if (prev.Type == NodeType.SpecialSubstitution && prev is SpecialSubstitution substitution)
|
||||||
{
|
{
|
||||||
|
@ -1377,7 +1377,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// ::= fp <top-level CV-qualifiers> <parameter-2 non-negative number> _ # L == 0, second and later parameters
|
// ::= fp <top-level CV-qualifiers> <parameter-2 non-negative number> _ # L == 0, second and later parameters
|
||||||
// ::= fL <L-1 non-negative number> p <top-level CV-qualifiers> _ # L > 0, first parameter
|
// ::= fL <L-1 non-negative number> p <top-level CV-qualifiers> _ # L > 0, first parameter
|
||||||
// ::= fL <L-1 non-negative number> p <top-level CV-qualifiers> <parameter-2 non-negative number> _ # L > 0, second and later parameters
|
// ::= fL <L-1 non-negative number> p <top-level CV-qualifiers> <parameter-2 non-negative number> _ # L > 0, second and later parameters
|
||||||
private BaseNode ParseFunctionParameter()
|
private FunctionParameter ParseFunctionParameter()
|
||||||
{
|
{
|
||||||
if (ConsumeIf("fp"))
|
if (ConsumeIf("fp"))
|
||||||
{
|
{
|
||||||
|
@ -1422,7 +1422,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// ::= fR <binary-operator-name> <expression> <expression>
|
// ::= fR <binary-operator-name> <expression> <expression>
|
||||||
// ::= fl <binary-operator-name> <expression>
|
// ::= fl <binary-operator-name> <expression>
|
||||||
// ::= fr <binary-operator-name> <expression>
|
// ::= fr <binary-operator-name> <expression>
|
||||||
private BaseNode ParseFoldExpression()
|
private FoldExpression ParseFoldExpression()
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("f"))
|
if (!ConsumeIf("f"))
|
||||||
{
|
{
|
||||||
|
@ -1571,7 +1571,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
|
|
||||||
// ::= cv <type> <expression> # type (expression), conversion with one argument
|
// ::= cv <type> <expression> # type (expression), conversion with one argument
|
||||||
// ::= cv <type> _ <expression>* E # type (expr-list), conversion with other than one argument
|
// ::= cv <type> _ <expression>* E # type (expr-list), conversion with other than one argument
|
||||||
private BaseNode ParseConversionExpression()
|
private ConversionExpression ParseConversionExpression()
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("cv"))
|
if (!ConsumeIf("cv"))
|
||||||
{
|
{
|
||||||
|
@ -1616,7 +1616,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
return new ConversionExpression(type, new NodeArray(expressions));
|
return new ConversionExpression(type, new NodeArray(expressions));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseNode ParseBinaryExpression(string name)
|
private BinaryExpression ParseBinaryExpression(string name)
|
||||||
{
|
{
|
||||||
BaseNode leftPart = ParseExpression();
|
BaseNode leftPart = ParseExpression();
|
||||||
if (leftPart == null)
|
if (leftPart == null)
|
||||||
|
@ -1633,7 +1633,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
return new BinaryExpression(leftPart, name, rightPart);
|
return new BinaryExpression(leftPart, name, rightPart);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseNode ParsePrefixExpression(string name)
|
private PrefixExpression ParsePrefixExpression(string name)
|
||||||
{
|
{
|
||||||
BaseNode expression = ParseExpression();
|
BaseNode expression = ParseExpression();
|
||||||
if (expression == null)
|
if (expression == null)
|
||||||
|
@ -1720,7 +1720,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// ::= [gs] na <expression>* _ <type> <initializer> # new[] (expr-list) type (init)
|
// ::= [gs] na <expression>* _ <type> <initializer> # new[] (expr-list) type (init)
|
||||||
//
|
//
|
||||||
// <initializer> ::= pi <expression>* E # parenthesized initialization
|
// <initializer> ::= pi <expression>* E # parenthesized initialization
|
||||||
private BaseNode ParseNewExpression()
|
private NewExpression ParseNewExpression()
|
||||||
{
|
{
|
||||||
bool isGlobal = ConsumeIf("gs");
|
bool isGlobal = ConsumeIf("gs");
|
||||||
bool isArray = Peek(1) == 'a';
|
bool isArray = Peek(1) == 'a';
|
||||||
|
@ -2404,7 +2404,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseNode ParseIntegerLiteral(string literalName)
|
private IntegerLiteral ParseIntegerLiteral(string literalName)
|
||||||
{
|
{
|
||||||
string number = ParseNumber(true);
|
string number = ParseNumber(true);
|
||||||
if (number == null || number.Length == 0 || !ConsumeIf("E"))
|
if (number == null || number.Length == 0 || !ConsumeIf("E"))
|
||||||
|
@ -2521,7 +2521,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
|
|
||||||
// <decltype> ::= Dt <expression> E # decltype of an id-expression or class member access (C++0x)
|
// <decltype> ::= Dt <expression> E # decltype of an id-expression or class member access (C++0x)
|
||||||
// ::= DT <expression> E # decltype of an expression (C++0x)
|
// ::= DT <expression> E # decltype of an expression (C++0x)
|
||||||
private BaseNode ParseDecltype()
|
private EnclosedExpression ParseDecltype()
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("D") || (!ConsumeIf("t") && !ConsumeIf("T")))
|
if (!ConsumeIf("D") || (!ConsumeIf("t") && !ConsumeIf("T")))
|
||||||
{
|
{
|
||||||
|
@ -2588,7 +2588,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
}
|
}
|
||||||
|
|
||||||
// <template-args> ::= I <template-arg>+ E
|
// <template-args> ::= I <template-arg>+ E
|
||||||
private BaseNode ParseTemplateArguments(bool hasContext = false)
|
private TemplateArguments ParseTemplateArguments(bool hasContext = false)
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("I"))
|
if (!ConsumeIf("I"))
|
||||||
{
|
{
|
||||||
|
@ -2740,7 +2740,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
|
|
||||||
// <destructor-name> ::= <unresolved-type> # e.g., ~T or ~decltype(f())
|
// <destructor-name> ::= <unresolved-type> # e.g., ~T or ~decltype(f())
|
||||||
// ::= <simple-id> # e.g., ~A<2*N>
|
// ::= <simple-id> # e.g., ~A<2*N>
|
||||||
private BaseNode ParseDestructorName()
|
private DtorName ParseDestructorName()
|
||||||
{
|
{
|
||||||
BaseNode node;
|
BaseNode node;
|
||||||
if (char.IsDigit(Peek()))
|
if (char.IsDigit(Peek()))
|
||||||
|
@ -3134,7 +3134,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler
|
||||||
// <local-name> ::= Z <function encoding> E <entity name> [<discriminator>]
|
// <local-name> ::= Z <function encoding> E <entity name> [<discriminator>]
|
||||||
// ::= Z <function encoding> E s [<discriminator>]
|
// ::= Z <function encoding> E s [<discriminator>]
|
||||||
// ::= Z <function encoding> Ed [ <parameter number> ] _ <entity name>
|
// ::= Z <function encoding> Ed [ <parameter number> ] _ <entity name>
|
||||||
private BaseNode ParseLocalName(NameParserContext context)
|
private LocalName ParseLocalName(NameParserContext context)
|
||||||
{
|
{
|
||||||
if (!ConsumeIf("Z"))
|
if (!ConsumeIf("Z"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -542,7 +542,7 @@ namespace Ryujinx.HLE.HOS
|
||||||
return newStorage;
|
return newStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void AddFiles(IFileSystem fs, string modName, string rootPath, ISet<string> fileSet, RomFsBuilder builder)
|
private static void AddFiles(IFileSystem fs, string modName, string rootPath, HashSet<string> fileSet, RomFsBuilder builder)
|
||||||
{
|
{
|
||||||
foreach (var entry in fs.EnumerateEntries()
|
foreach (var entry in fs.EnumerateEntries()
|
||||||
.AsParallel()
|
.AsParallel()
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using Ryujinx.Common.Memory;
|
using Ryujinx.Common.Memory;
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage
|
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage
|
||||||
{
|
{
|
||||||
|
@ -11,7 +12,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage
|
||||||
public static byte[] MakeLaunchParams(UserProfile userProfile)
|
public static byte[] MakeLaunchParams(UserProfile userProfile)
|
||||||
{
|
{
|
||||||
// Size needs to be at least 0x88 bytes otherwise application errors.
|
// Size needs to be at least 0x88 bytes otherwise application errors.
|
||||||
using MemoryStream ms = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream ms = MemoryStreamManager.Shared.GetStream();
|
||||||
BinaryWriter writer = new(ms);
|
BinaryWriter writer = new(ms);
|
||||||
|
|
||||||
ms.SetLength(0x88);
|
ms.SetLength(0x88);
|
||||||
|
|
|
@ -14,6 +14,7 @@ using System;
|
||||||
using System.Buffers.Binary;
|
using System.Buffers.Binary;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Services.Sdb.Pl
|
namespace Ryujinx.HLE.HOS.Services.Sdb.Pl
|
||||||
{
|
{
|
||||||
|
@ -161,7 +162,7 @@ namespace Ryujinx.HLE.HOS.Services.Sdb.Pl
|
||||||
static uint KXor(uint data) => data ^ FontKey;
|
static uint KXor(uint data) => data ^ FontKey;
|
||||||
|
|
||||||
using BinaryReader reader = new(bfttfStream);
|
using BinaryReader reader = new(bfttfStream);
|
||||||
using MemoryStream ttfStream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream ttfStream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter output = new(ttfStream);
|
using BinaryWriter output = new(ttfStream);
|
||||||
|
|
||||||
if (KXor(reader.ReadUInt32()) != BFTTFMagic)
|
if (KXor(reader.ReadUInt32()) != BFTTFMagic)
|
||||||
|
|
|
@ -14,6 +14,7 @@ using System.Buffers.Binary;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.HOS.Services
|
namespace Ryujinx.HLE.HOS.Services
|
||||||
{
|
{
|
||||||
|
@ -46,10 +47,10 @@ namespace Ryujinx.HLE.HOS.Services
|
||||||
private readonly Dictionary<int, IpcService> _sessions = new();
|
private readonly Dictionary<int, IpcService> _sessions = new();
|
||||||
private readonly Dictionary<int, Func<IpcService>> _ports = new();
|
private readonly Dictionary<int, Func<IpcService>> _ports = new();
|
||||||
|
|
||||||
private readonly MemoryStream _requestDataStream;
|
private readonly RecyclableMemoryStream _requestDataStream;
|
||||||
private readonly BinaryReader _requestDataReader;
|
private readonly BinaryReader _requestDataReader;
|
||||||
|
|
||||||
private readonly MemoryStream _responseDataStream;
|
private readonly RecyclableMemoryStream _responseDataStream;
|
||||||
private readonly BinaryWriter _responseDataWriter;
|
private readonly BinaryWriter _responseDataWriter;
|
||||||
|
|
||||||
private int _isDisposed = 0;
|
private int _isDisposed = 0;
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ISocket newBsdSocket = new ManagedSocket(netDomain, (SocketType)type, protocol)
|
ManagedSocket newBsdSocket = new(netDomain, (SocketType)type, protocol)
|
||||||
{
|
{
|
||||||
Blocking = !creationFlags.HasFlag(BsdSocketCreationFlags.NonBlocking),
|
Blocking = !creationFlags.HasFlag(BsdSocketCreationFlags.NonBlocking),
|
||||||
};
|
};
|
||||||
|
|
|
@ -400,7 +400,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IList<ArraySegment<byte>> ConvertMessagesToBuffer(BsdMMsgHdr message)
|
private static ArraySegment<byte>[] ConvertMessagesToBuffer(BsdMMsgHdr message)
|
||||||
{
|
{
|
||||||
int segmentCount = 0;
|
int segmentCount = 0;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
|
||||||
private SessionCacheMode _sessionCacheMode;
|
private SessionCacheMode _sessionCacheMode;
|
||||||
private string _hostName;
|
private string _hostName;
|
||||||
|
|
||||||
private ISslConnectionBase _connection;
|
private SslManagedSocketConnection _connection;
|
||||||
private BsdContext _bsdContext;
|
private BsdContext _bsdContext;
|
||||||
private readonly ulong _processId;
|
private readonly ulong _processId;
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace Ryujinx.HLE.HOS.Tamper
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ITamperProgram CompileImpl(string name, IEnumerable<string> rawInstructions)
|
private AtmosphereProgram CompileImpl(string name, IEnumerable<string> rawInstructions)
|
||||||
{
|
{
|
||||||
CompilationContext context = new(_exeAddress, _heapAddress, _aliasAddress, _aslrAddress, _process);
|
CompilationContext context = new(_exeAddress, _heapAddress, _aliasAddress, _aslrAddress, _process);
|
||||||
context.BlockStack.Push(new OperationBlock(null));
|
context.BlockStack.Push(new OperationBlock(null));
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace Ryujinx.Horizon.Common
|
||||||
static class ResultNames
|
static class ResultNames
|
||||||
{
|
{
|
||||||
// Reference: https://github.com/Thealexbarney/LibHac/blob/master/build/CodeGen/results.csv
|
// Reference: https://github.com/Thealexbarney/LibHac/blob/master/build/CodeGen/results.csv
|
||||||
private static readonly IReadOnlyDictionary<int, string> _names = new Dictionary<int, string>()
|
private static readonly Dictionary<int, string> _names = new Dictionary<int, string>()
|
||||||
{
|
{
|
||||||
{ 0x0, "Success" },
|
{ 0x0, "Success" },
|
||||||
{ 0xE01, "OutOfSessions" },
|
{ 0xE01, "OutOfSessions" },
|
||||||
|
|
|
@ -14,6 +14,7 @@ using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.IO;
|
||||||
|
|
||||||
namespace Ryujinx.Input.Motion.CemuHook
|
namespace Ryujinx.Input.Motion.CemuHook
|
||||||
{
|
{
|
||||||
|
@ -380,7 +381,7 @@ namespace Ryujinx.Input.Motion.CemuHook
|
||||||
|
|
||||||
Header header = GenerateHeader(clientId);
|
Header header = GenerateHeader(clientId);
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.WriteStruct(header);
|
writer.WriteStruct(header);
|
||||||
|
@ -419,7 +420,7 @@ namespace Ryujinx.Input.Motion.CemuHook
|
||||||
|
|
||||||
Header header = GenerateHeader(clientId);
|
Header header = GenerateHeader(clientId);
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using RecyclableMemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.WriteStruct(header);
|
writer.WriteStruct(header);
|
||||||
|
|
|
@ -463,7 +463,7 @@ namespace Ryujinx.Modules
|
||||||
|
|
||||||
using HttpResponseMessage response = client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead).Result;
|
using HttpResponseMessage response = client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead).Result;
|
||||||
using Stream remoteFileStream = response.Content.ReadAsStreamAsync().Result;
|
using Stream remoteFileStream = response.Content.ReadAsStreamAsync().Result;
|
||||||
using Stream updateFileStream = File.Open(updateFile, FileMode.Create);
|
using FileStream updateFileStream = File.Open(updateFile, FileMode.Create);
|
||||||
|
|
||||||
long totalBytes = response.Content.Headers.ContentLength.Value;
|
long totalBytes = response.Content.Headers.ContentLength.Value;
|
||||||
long byteWritten = 0;
|
long byteWritten = 0;
|
||||||
|
|
|
@ -406,7 +406,7 @@ namespace Ryujinx.Ava.UI.Helpers
|
||||||
return dialogWindow.ShowDialog(_contentDialogOverlayWindow ?? mainWindow);
|
return dialogWindow.ShowDialog(_contentDialogOverlayWindow ?? mainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Window GetMainWindow()
|
private static MainWindow GetMainWindow()
|
||||||
{
|
{
|
||||||
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime al)
|
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime al)
|
||||||
{
|
{
|
||||||
|
|
|
@ -116,7 +116,7 @@ namespace Ryujinx.Ava.UI.Renderer
|
||||||
}
|
}
|
||||||
|
|
||||||
[SupportedOSPlatform("linux")]
|
[SupportedOSPlatform("linux")]
|
||||||
private IPlatformHandle CreateLinux(IPlatformHandle control)
|
private PlatformHandle CreateLinux(IPlatformHandle control)
|
||||||
{
|
{
|
||||||
if (ConfigurationState.Instance.Graphics.GraphicsBackend.Value == GraphicsBackend.Vulkan)
|
if (ConfigurationState.Instance.Graphics.GraphicsBackend.Value == GraphicsBackend.Vulkan)
|
||||||
{
|
{
|
||||||
|
@ -135,7 +135,7 @@ namespace Ryujinx.Ava.UI.Renderer
|
||||||
}
|
}
|
||||||
|
|
||||||
[SupportedOSPlatform("windows")]
|
[SupportedOSPlatform("windows")]
|
||||||
IPlatformHandle CreateWin32(IPlatformHandle control)
|
PlatformHandle CreateWin32(IPlatformHandle control)
|
||||||
{
|
{
|
||||||
_className = "NativeWindow-" + Guid.NewGuid();
|
_className = "NativeWindow-" + Guid.NewGuid();
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ namespace Ryujinx.Ava.UI.Renderer
|
||||||
}
|
}
|
||||||
|
|
||||||
[SupportedOSPlatform("macos")]
|
[SupportedOSPlatform("macos")]
|
||||||
IPlatformHandle CreateMacOS()
|
PlatformHandle CreateMacOS()
|
||||||
{
|
{
|
||||||
// Create a new CAMetalLayer.
|
// Create a new CAMetalLayer.
|
||||||
ObjectiveC.Object layerObject = new("CAMetalLayer");
|
ObjectiveC.Object layerObject = new("CAMetalLayer");
|
||||||
|
|
|
@ -143,7 +143,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] DecompressYaz0(Stream stream)
|
private static byte[] DecompressYaz0(MemoryStream stream)
|
||||||
{
|
{
|
||||||
using BinaryReader reader = new(stream);
|
using BinaryReader reader = new(stream);
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IComparer<SaveModel> GetComparer()
|
private SortExpressionComparer<SaveModel> GetComparer()
|
||||||
{
|
{
|
||||||
return SortIndex switch
|
return SortIndex switch
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
public partial class SettingsHotkeysView : UserControl
|
public partial class SettingsHotkeysView : UserControl
|
||||||
{
|
{
|
||||||
private ButtonKeyAssigner _currentAssigner;
|
private ButtonKeyAssigner _currentAssigner;
|
||||||
private readonly IGamepadDriver _avaloniaKeyboardDriver;
|
private readonly AvaloniaKeyboardDriver _avaloniaKeyboardDriver;
|
||||||
|
|
||||||
public SettingsHotkeysView()
|
public SettingsHotkeysView()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue