using System.Diagnostics.CodeAnalysis;
namespace ADOFAIRenderer.API;
///
/// Represents a custom frame modification hook that can modify rendered frames using GPU ping-pong double buffering.
///
///
/// Execution Frequency Note: Frame hooks are only invoked for frames that are actually encoded into the final video (VideoFPS).
/// When RenderFPS is higher than VideoFPS, intermediate game render frames are skipped and this hook
/// will not be called on every game frame.
///
[SuppressMessage("ReSharper", "UnusedType.Global")]
public interface IFrameHook
{
///
/// Invoked for each captured video frame before it is encoded.
///
///
/// This method is not called on every rendered game frame if RenderFPS exceeds VideoFPS.
///
/// The frame hook context providing access to ping-pong textures and frame metadata.
void OnRenderFrame(FrameHookContext context);
}