#pragma once enum FSR2PluginEvent : int32_t { eDestroyFeature, eExecute, ePostExecute, eInit }; enum FSR2Quality: int32_t { qQuality, qBalanced, qPerformance, qUltraPerformance }; enum FSR2Textures: int32_t { tColorInput, tColorOutput, tDepth, tMotionVectors, tTransparencyMask, tExposureTexture, tReactiveMask, tBiasColorMask, }; struct FSR2CommandInitializationData { uint32_t maxRenderSizeWidth; uint32_t maxRenderSizeHeight; uint32_t displaySizeWidth; uint32_t displaySizeHeight; int32_t flags; uint32_t featureSlot; }; struct FSR2CommandExecutionData { 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 FSR2TextureDesc { intptr_t image; intptr_t view; uint32_t width; uint32_t height; uint32_t format; }; struct FSR2TextureTable { FSR2TextureDesc colorInput; FSR2TextureDesc colorOutput; FSR2TextureDesc depth; FSR2TextureDesc motionVectors; FSR2TextureDesc transparencyMask; FSR2TextureDesc exposureTexture; FSR2TextureDesc reactiveMask; FSR2TextureDesc biasColorMask; };