aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs')
-rw-r--r--Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs b/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs
new file mode 100644
index 00000000..b9e9054b
--- /dev/null
+++ b/Ryujinx.HLE/OsHle/Services/Vi/GbpBuffer.cs
@@ -0,0 +1,60 @@
+using System.IO;
+
+namespace Ryujinx.HLE.OsHle.Services.Android
+{
+ struct GbpBuffer
+ {
+ public int Magic { get; private set; }
+ public int Width { get; private set; }
+ public int Height { get; private set; }
+ public int Stride { get; private set; }
+ public int Format { get; private set; }
+ public int Usage { get; private set; }
+
+ public int Pid { get; private set; }
+ public int RefCount { get; private set; }
+
+ public int FdsCount { get; private set; }
+ public int IntsCount { get; private set; }
+
+ public byte[] RawData { get; private set; }
+
+ public int Size => RawData.Length + 10 * 4;
+
+ public GbpBuffer(BinaryReader Reader)
+ {
+ Magic = Reader.ReadInt32();
+ Width = Reader.ReadInt32();
+ Height = Reader.ReadInt32();
+ Stride = Reader.ReadInt32();
+ Format = Reader.ReadInt32();
+ Usage = Reader.ReadInt32();
+
+ Pid = Reader.ReadInt32();
+ RefCount = Reader.ReadInt32();
+
+ FdsCount = Reader.ReadInt32();
+ IntsCount = Reader.ReadInt32();
+
+ RawData = Reader.ReadBytes((FdsCount + IntsCount) * 4);
+ }
+
+ public void Write(BinaryWriter Writer)
+ {
+ Writer.Write(Magic);
+ Writer.Write(Width);
+ Writer.Write(Height);
+ Writer.Write(Stride);
+ Writer.Write(Format);
+ Writer.Write(Usage);
+
+ Writer.Write(Pid);
+ Writer.Write(RefCount);
+
+ Writer.Write(FdsCount);
+ Writer.Write(IntsCount);
+
+ Writer.Write(RawData);
+ }
+ }
+} \ No newline at end of file