Giant_Beast_2025/Plugins/MetaXR/Source/OculusXRHMD/Private/OculusXRHMD_FoveatedRendering.h

85 lines
2.2 KiB
C++

// @lint-ignore-every LICENSELINT
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Misc/EngineVersionComparison.h"
#include "VariableRateShadingImageManager.h"
#include "XRSwapchain.h"
class FOculusXRFoveatedRenderingImageGenerator : public IVariableRateShadingImageGenerator
{
public:
FOculusXRFoveatedRenderingImageGenerator(const FXRSwapChainPtr& Swapchain);
virtual ~FOculusXRFoveatedRenderingImageGenerator() override;
// IVariableRateShadingImageGenerator interface
#if !UE_VERSION_OLDER_THAN(5, 4, 0)
virtual FRDGTextureRef GetImage(
FRDGBuilder& GraphBuilder,
const FViewInfo& ViewInfo,
FVariableRateShadingImageManager::EVRSImageType ImageType,
bool bGetSoftwareImage = false) override;
#else
virtual FRDGTextureRef GetImage(
FRDGBuilder& GraphBuilder,
const FViewInfo& ViewInfo,
FVariableRateShadingImageManager::EVRSImageType ImageType) override;
#endif
#if !UE_VERSION_OLDER_THAN(5, 4, 0)
virtual void PrepareImages(
FRDGBuilder& GraphBuilder,
const FSceneViewFamily& ViewFamily,
const FMinimalSceneTextures& SceneTextures,
bool bPrepareHardwareImages,
bool bPrepareSoftwareImages) override
{
return;
}
#else
virtual void PrepareImages(
FRDGBuilder& GraphBuilder,
const FSceneViewFamily& ViewFamily,
const FMinimalSceneTextures& SceneTextures) override
{
return;
}
#endif
#if !UE_VERSION_OLDER_THAN(5, 4, 0)
virtual bool IsEnabled() const override
{
return true;
};
#endif
#if !UE_VERSION_OLDER_THAN(5, 4, 0)
virtual bool IsSupportedByView(const FSceneView& View) const override;
#else
virtual bool IsEnabledForView(const FSceneView& View) const override;
#endif
#if !UE_VERSION_OLDER_THAN(5, 4, 0)
virtual FRDGTextureRef GetDebugImage(
FRDGBuilder& GraphBuilder,
const FViewInfo& ViewInfo,
FVariableRateShadingImageManager::EVRSImageType ImageType,
bool bGetSoftwareImage = false) override;
#else
virtual FRDGTextureRef GetDebugImage(
FRDGBuilder& GraphBuilder,
const FViewInfo& ViewInfo,
FVariableRateShadingImageManager::EVRSImageType ImageType) override;
#endif
virtual FVariableRateShadingImageManager::EVRSSourceType GetType() const override
{
return FVariableRateShadingImageManager::EVRSSourceType::FixedFoveation;
}
private:
const FXRSwapChainPtr& FoveationSwapchain;
};