#pragma once enum FSR3PluginEvent : int32_t { eDestroyFeature, eExecute, ePostExecute, eInit, eSetTextures }; enum FSR3Quality: int32_t { qQuality, qBalanced, qPerformance, qUltraPerformance }; enum FSR3Textures: 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 FSR3TextureTable { intptr_t colorInput; intptr_t colorOutput; intptr_t depth; intptr_t motionVectors; intptr_t transparencyMask; intptr_t exposureTexture; intptr_t reactiveMask; intptr_t biasColorMask; uint32_t featureSlot; };