StructWriter.cs 682 B

12345678910111213141516171819202122232425262728293031
  1. using Ryujinx.Cpu;
  2. using Ryujinx.Memory;
  3. using System.Runtime.InteropServices;
  4. namespace Ryujinx.HLE.Utilities
  5. {
  6. class StructWriter
  7. {
  8. private IVirtualMemoryManager _memory;
  9. public long Position { get; private set; }
  10. public StructWriter(IVirtualMemoryManager memory, long position)
  11. {
  12. _memory = memory;
  13. Position = position;
  14. }
  15. public void Write<T>(T value) where T : struct
  16. {
  17. MemoryHelper.Write(_memory, Position, value);
  18. Position += Marshal.SizeOf<T>();
  19. }
  20. public void SkipBytes(long count)
  21. {
  22. Position += count;
  23. }
  24. }
  25. }