| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using System.Runtime.InteropServices;
- using System.Text;
- namespace Ryujinx.Common.GraphicsDriver.NVAPI
- {
- [StructLayout(LayoutKind.Sequential, Pack = 4)]
- public unsafe struct NvapiUnicodeString
- {
- private fixed byte _data[4096];
- public NvapiUnicodeString(string text)
- {
- Set(text);
- }
- public string Get()
- {
- fixed (byte* data = _data)
- {
- string text = Encoding.Unicode.GetString(data, 4096);
- int index = text.IndexOf('\0');
- if (index > -1)
- {
- text = text.Remove(index);
- }
- return text;
- }
- }
- public void Set(string text)
- {
- text += '\0';
- fixed (char* textPtr = text)
- fixed (byte* data = _data)
- {
- int written = Encoding.Unicode.GetBytes(textPtr, text.Length, data, 4096);
- }
- }
- }
- }
|