GbpBuffer.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.IO;
  2. namespace Ryujinx.HLE.HOS.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. }