GbpBuffer.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.IO;
  2. namespace Ryujinx.HLE.OsHle.Services.Android
  3. {
  4. struct GbpBuffer
  5. {
  6. public int Magic { get; private set; }
  7. public int Width { get; private set; }
  8. public int Height { get; private set; }
  9. public int Stride { get; private set; }
  10. public int Format { get; private set; }
  11. public int Usage { get; private set; }
  12. public int Pid { get; private set; }
  13. public int RefCount { get; private set; }
  14. public int FdsCount { get; private set; }
  15. public int IntsCount { get; private set; }
  16. public byte[] RawData { get; private set; }
  17. public int Size => RawData.Length + 10 * 4;
  18. public GbpBuffer(BinaryReader Reader)
  19. {
  20. Magic = Reader.ReadInt32();
  21. Width = Reader.ReadInt32();
  22. Height = Reader.ReadInt32();
  23. Stride = Reader.ReadInt32();
  24. Format = Reader.ReadInt32();
  25. Usage = Reader.ReadInt32();
  26. Pid = Reader.ReadInt32();
  27. RefCount = Reader.ReadInt32();
  28. FdsCount = Reader.ReadInt32();
  29. IntsCount = Reader.ReadInt32();
  30. RawData = Reader.ReadBytes((FdsCount + IntsCount) * 4);
  31. }
  32. public void Write(BinaryWriter Writer)
  33. {
  34. Writer.Write(Magic);
  35. Writer.Write(Width);
  36. Writer.Write(Height);
  37. Writer.Write(Stride);
  38. Writer.Write(Format);
  39. Writer.Write(Usage);
  40. Writer.Write(Pid);
  41. Writer.Write(RefCount);
  42. Writer.Write(FdsCount);
  43. Writer.Write(IntsCount);
  44. Writer.Write(RawData);
  45. }
  46. }
  47. }