diff --git a/src/Ryujinx.Graphics.RenderDocApi/RenderDoc.cs b/src/Ryujinx.Graphics.RenderDocApi/RenderDoc.cs index c6550fb48..51bc7c12c 100644 --- a/src/Ryujinx.Graphics.RenderDocApi/RenderDoc.cs +++ b/src/Ryujinx.Graphics.RenderDocApi/RenderDoc.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Immutable; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Reflection; @@ -279,6 +280,29 @@ namespace Ryujinx.Graphics.RenderDocApi Api->TriggerCapture(); } + + /// + /// Gets the details of all frame capture in the current session. + /// This simply calls for each index available as specified by . + /// + /// An immutable array of structs representing RenderDoc Captures. + public static ImmutableArray GetCaptures() + { + if (Api is null) return []; + int captureCount = CaptureCount; + if (captureCount is 0) return []; + + ImmutableArray.Builder captures = ImmutableArray.CreateBuilder(captureCount); + + for (int captureIndex = 0; captureIndex < captureCount; captureIndex++) + { + if (GetCapture(captureIndex) is { } capture) + captures.Add(capture); + } + + return captures.DrainToImmutable(); + } + /// /// Gets the details of a particular frame capture, as specified by an index from 0 to - 1. ///