// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "RHI.h" #include "RendererInterface.h" #include "RenderGraphDefinitions.h" #include "VariableRateShadingImageManager.h" #include "Engine/Engine.h" class FContrastAdaptiveImageGenerator : public IVariableRateShadingImageGenerator { public: virtual ~FContrastAdaptiveImageGenerator() override {}; virtual FRDGTextureRef GetImage(FRDGBuilder& GraphBuilder, const FViewInfo& ViewInfo, FVariableRateShadingImageManager::EVRSImageType ImageType, bool bGetSoftwareImage = false) override; virtual void PrepareImages(FRDGBuilder& GraphBuilder, const FSceneViewFamily& ViewFamily, const FMinimalSceneTextures& SceneTextures, bool bPrepareHardwareImages, bool bPrepareSoftwareImages) override; virtual bool IsEnabled() const override; virtual bool IsSupportedByView(const FSceneView& View) const override; virtual FVariableRateShadingImageManager::EVRSSourceType GetType() const override { return FVariableRateShadingImageManager::EVRSSourceType::ContrastAdaptiveShading; } virtual FRDGTextureRef GetDebugImage(FRDGBuilder& GraphBuilder, const FViewInfo& ViewInfo, FVariableRateShadingImageManager::EVRSImageType ImageType, bool bGetSoftwareImage = false) override; };