mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-05-02 18:27:43 +02:00

This is not a continuation of the Metal backend; this is simply bringing the branch up to date and merging it as-is behind an experiment. --------- Co-authored-by: Isaac Marovitz <isaacryu@icloud.com> Co-authored-by: Samuliak <samuliak77@gmail.com> Co-authored-by: SamoZ256 <96914946+SamoZ256@users.noreply.github.com> Co-authored-by: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> Co-authored-by: riperiperi <rhy3756547@hotmail.com> Co-authored-by: Gabriel A <gab.dark.100@gmail.com>
30 lines
940 B
C#
30 lines
940 B
C#
using SharpMetal.Foundation;
|
|
using SharpMetal.ObjectiveCCore;
|
|
using System.Runtime.Versioning;
|
|
|
|
namespace Ryujinx.Graphics.Metal
|
|
{
|
|
[SupportedOSPlatform("macos")]
|
|
class StringHelper
|
|
{
|
|
public static NSString NSString(string source)
|
|
{
|
|
return new(ObjectiveC.IntPtr_objc_msgSend(new ObjectiveCClass("NSString"), "stringWithUTF8String:", source));
|
|
}
|
|
|
|
public static unsafe string String(NSString source)
|
|
{
|
|
char[] sourceBuffer = new char[source.Length];
|
|
fixed (char* pSourceBuffer = sourceBuffer)
|
|
{
|
|
ObjectiveC.bool_objc_msgSend(source,
|
|
"getCString:maxLength:encoding:",
|
|
pSourceBuffer,
|
|
source.MaximumLengthOfBytes(NSStringEncoding.UTF16) + 1,
|
|
(ulong)NSStringEncoding.UTF16);
|
|
}
|
|
|
|
return new string(sourceBuffer);
|
|
}
|
|
}
|
|
}
|