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); }