mirror of https://github.com/ppy/SDL3-CS.git
Add `PtrToStringUTF8()` for `byte *`
This commit is contained in:
parent
702dc06a03
commit
711e004ecd
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace SDL
|
||||||
|
{
|
||||||
|
public static unsafe partial class SDL3
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Allocates a managed <c>string</c> and copies all characters up to the first null character from an unmanaged UTF-8 string into it.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ptr">The address of the first character of the unmanaged string.</param>
|
||||||
|
/// <param name="free">Whether to free the pointer after copying the string.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// A managed string that holds a copy of the unmanaged string if the value of the <paramref name="ptr"/> parameter is not <c>null</c>; otherwise, this method returns <c>null</c>.
|
||||||
|
/// </returns>
|
||||||
|
public static string? PtrToStringUTF8(byte* ptr, bool free = false)
|
||||||
|
{
|
||||||
|
string? s = Marshal.PtrToStringUTF8((IntPtr)ptr);
|
||||||
|
|
||||||
|
if (free)
|
||||||
|
SDL_free(ptr);
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue