#pragma once enum FSR3PluginEvent : int32_t { eDestroyFeature, eExecute, ePostExecute, eInit }; enum FSR3Quality: int32_t { qQuality, qBalanced, qPerformance, qUltraPerformance }; enum FSR3Texture: int32_t { tColorInput, tColorOutput, tDepth, tMotionVectors, tTransparencyMask, tExposureTexture, tReactiveMask, tBiasColorMask, }; struct FSR3CommandInitializationData { uint32_t maxRenderSizeWidth; uint32_t maxRenderSizeHeight; uint32_t displaySizeWidth; uint32_t displaySizeHeight; int32_t flags; uint32_t featureSlot; }; struct FSR3CommandExecutionData { float jitterOffsetX; float jitterOffsetY; float MVScaleX; float MVScaleY; uint32_t renderSizeWidth; uint32_t renderSizeHeight; int32_t enableSharpening; float sharpness; float frameTimeDelta; float preExposure; int32_t reset; float cameraNear; float cameraFar; float cameraFovAngleVertical; uint32_t featureSlot; }; struct FSR3TextureDesc { intptr_t image; uint32_t width; uint32_t height; uint32_t format; }; struct FSR3TextureTable { FSR3TextureDesc colorInput; FSR3TextureDesc colorOutput; FSR3TextureDesc depth; FSR3TextureDesc motionVectors; FSR3TextureDesc transparencyMask; FSR3TextureDesc exposureTexture; FSR3TextureDesc reactiveMask; FSR3TextureDesc biasColorMask; };