Surface Flinger: Implement GetBufferHistory (#1232)

* Surface Flinger: Implement GetBufferHistory

Also fix some bugs on the Surface Flinger implementation

* Address Ac_K's comment
This commit is contained in:
Thog 2020-05-15 03:30:08 +02:00 committed by GitHub
parent b2e5855928
commit 378259a40a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 167 additions and 8 deletions

View file

@ -236,6 +236,18 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
outputParcel.WriteStatus(status);
break;
case TransactionCode.GetBufferHistory:
int bufferHistoryCount = inputParcel.ReadInt32();
status = GetBufferHistory(bufferHistoryCount, out Span<BufferInfo> bufferInfos);
outputParcel.WriteStatus(status);
outputParcel.WriteInt32(bufferInfos.Length);
outputParcel.WriteUnmanagedSpan<BufferInfo>(bufferInfos);
break;
default:
throw new NotImplementedException($"Transaction {(TransactionCode)code} not implemented");
@ -272,5 +284,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
public abstract Status Disconnect(NativeWindowApi api);
public abstract Status SetPreallocatedBuffer(int slot, AndroidStrongPointer<GraphicBuffer> graphicBuffer);
public abstract Status GetBufferHistory(int bufferHistoryCount, out Span<BufferInfo> bufferInfos);
}
}