Files
UnrealEngine/Engine/Source/Runtime/Renderer/Public/RendererUtils.h
2025-05-18 13:04:45 +08:00

74 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Containers/ArrayView.h"
#include "GlobalShader.h"
#include "HAL/Platform.h"
#include "RHIDefinitions.h"
#include "RenderGraph.h"
#include "RenderGraphDefinitions.h"
#include "ShaderParameterMacros.h"
#include "RenderGraphFwd.h"
struct FSubstrateSceneData;
class FScene;
class FGlobalShaderMap;
class FRDGBuilder;
class FRHICommandListImmediate;
class FScene;
struct IPooledRenderTarget;
template <typename ReferencedType> class TRefCountPtr;
class FRenderTargetWriteMask
{
public:
static RENDERER_API void Decode(
FRHICommandListImmediate& RHICmdList,
FGlobalShaderMap* ShaderMap,
TArrayView<IPooledRenderTarget* const> InRenderTargets,
TRefCountPtr<IPooledRenderTarget>& OutRTWriteMask,
ETextureCreateFlags RTWriteMaskFastVRamConfig,
const TCHAR* RTWriteMaskDebugName);
static RENDERER_API void Decode(
FRDGBuilder& GraphBuilder,
FGlobalShaderMap* ShaderMap,
TArrayView<FRDGTextureRef const> InRenderTargets,
FRDGTextureRef& OutRTWriteMask,
ETextureCreateFlags RTWriteMaskFastVRamConfig,
const TCHAR* RTWriteMaskDebugName);
};
class FDepthBounds
{
public:
struct FDepthBoundsValues
{
float MinDepth;
float MaxDepth;
};
static RENDERER_API FDepthBoundsValues CalculateNearFarDepthExcludingSky();
};
// A minimal uniform struct providing necessary access for external systems to Substrate parameters.
DECLARE_UNIFORM_BUFFER_STRUCT(FSubstratePublicGlobalUniformParameters, RENDERER_API)
namespace Substrate
{
void PreInitViews(FScene& Scene);
void PostRender(FScene& Scene);
RENDERER_API TRDGUniformBufferRef<FSubstratePublicGlobalUniformParameters> GetPublicGlobalUniformBuffer(FRDGBuilder& GraphBuilder, FScene& Scene);
}
// A minimal uniform struct providing necessary access for external systems to Nanite Ray Tracing parameters.
DECLARE_UNIFORM_BUFFER_STRUCT(FNaniteRayTracingUniformParameters, RENDERER_API)
namespace Nanite
{
RENDERER_API TRDGUniformBufferRef<FNaniteRayTracingUniformParameters> GetPublicGlobalRayTracingUniformBuffer();
}