Files
2025-05-18 13:04:45 +08:00

49 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UObject/WeakObjectPtrTemplates.h"
class AWaterZone;
class UWaterBodyComponent;
class FSceneInterface;
class UTextureRenderTarget2DArray;
class UPrimitiveComponent;
class FSceneView;
class FSceneViewFamily;
template <typename KeyType, typename ValueType>
using TWeakObjectPtrKeyMap = TMap<TWeakObjectPtr<KeyType>, ValueType, FDefaultSetAllocator, TWeakObjectPtrMapKeyFuncs<TWeakObjectPtr<KeyType>, ValueType>>;
namespace UE::WaterInfo
{
struct FRenderingContext
{
AWaterZone* ZoneToRender = nullptr;
UTextureRenderTarget2DArray* TextureRenderTarget;
TArray<TWeakObjectPtr<UWaterBodyComponent>> WaterBodies;
TArray<TWeakObjectPtr<UPrimitiveComponent>> GroundPrimitiveComponents;
float CaptureZ;
};
void UpdateWaterInfoRendering2(
FSceneView& InView,
const FRenderingContext& Context,
int32 RenderTargetArrayLayer,
const FVector& WaterInfoCenter);
void UpdateWaterInfoRendering_CustomRenderPass(
FSceneInterface* Scene,
const FSceneViewFamily& ViewFamily,
const FRenderingContext& Context,
int32 TextureArraySlice,
const FVector& WaterInfoCenter);
const FName& GetWaterInfoDepthPassName();
const FName& GetWaterInfoColorPassName();
const FName& GetWaterInfoDilationPassName();
} // namespace UE::WaterInfo