You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed. #ushell-cherrypick of 21065896 by bryan.sefcik #preflight 62d4b1a5a6141b6adfb0c892 #jira #ROBOMERGE-OWNER: Bryan.sefcik #ROBOMERGE-AUTHOR: bryan.sefcik #ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824) #ROBOMERGE-CONFLICT from-shelf [CL 21181076 by Bryan sefcik in ue5-main branch]
181 lines
5.4 KiB
C++
181 lines
5.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GlobalShader.h"
|
|
#include "HAL/Platform.h"
|
|
#include "RHIDefinitions.h"
|
|
#include "Serialization/MemoryLayout.h"
|
|
#include "Shader.h"
|
|
#include "ShaderCore.h"
|
|
#include "ShaderParameters.h"
|
|
|
|
class FPointerTableBase;
|
|
class FRHICommandList;
|
|
struct FResolveRect;
|
|
|
|
struct FDummyResolveParameter {};
|
|
|
|
class FResolveDepthPS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveDepthPS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
typedef FDummyResolveParameter FParameter;
|
|
|
|
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
|
|
{
|
|
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
|
|
}
|
|
|
|
FResolveDepthPS(const ShaderMetaType::CompiledShaderInitializerType& Initializer):
|
|
FGlobalShader(Initializer)
|
|
{
|
|
UnresolvedSurface.Bind(Initializer.ParameterMap,TEXT("UnresolvedSurface"), SPF_Mandatory);
|
|
}
|
|
FResolveDepthPS() {}
|
|
|
|
void SetParameters(FRHICommandList& RHICmdList, FParameter)
|
|
{
|
|
}
|
|
|
|
LAYOUT_FIELD(FShaderResourceParameter, UnresolvedSurface);
|
|
};
|
|
|
|
class FResolveDepth2XPS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveDepth2XPS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
typedef FDummyResolveParameter FParameter;
|
|
|
|
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
|
|
{
|
|
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
|
|
OutEnvironment.SetDefine(TEXT("DEPTH_RESOLVE_NUM_SAMPLES"), 2);
|
|
}
|
|
|
|
FResolveDepth2XPS(const ShaderMetaType::CompiledShaderInitializerType& Initializer) :
|
|
FGlobalShader(Initializer)
|
|
{
|
|
UnresolvedSurface.Bind(Initializer.ParameterMap, TEXT("UnresolvedSurface"), SPF_Mandatory);
|
|
}
|
|
FResolveDepth2XPS() {}
|
|
|
|
void SetParameters(FRHICommandList& RHICmdList, FParameter)
|
|
{
|
|
}
|
|
|
|
LAYOUT_FIELD(FShaderResourceParameter, UnresolvedSurface);
|
|
};
|
|
|
|
|
|
class FResolveDepth4XPS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveDepth4XPS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
typedef FDummyResolveParameter FParameter;
|
|
|
|
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
|
|
{
|
|
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
|
|
OutEnvironment.SetDefine(TEXT("DEPTH_RESOLVE_NUM_SAMPLES"), 4);
|
|
}
|
|
|
|
FResolveDepth4XPS(const ShaderMetaType::CompiledShaderInitializerType& Initializer) :
|
|
FGlobalShader(Initializer)
|
|
{
|
|
UnresolvedSurface.Bind(Initializer.ParameterMap, TEXT("UnresolvedSurface"), SPF_Mandatory);
|
|
}
|
|
FResolveDepth4XPS() {}
|
|
|
|
void SetParameters(FRHICommandList& RHICmdList, FParameter)
|
|
{
|
|
}
|
|
|
|
LAYOUT_FIELD(FShaderResourceParameter, UnresolvedSurface);
|
|
};
|
|
|
|
|
|
class FResolveDepth8XPS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveDepth8XPS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
typedef FDummyResolveParameter FParameter;
|
|
|
|
static bool ShouldCache(EShaderPlatform Platform) { return GetMaxSupportedFeatureLevel(Platform) >= ERHIFeatureLevel::SM5; }
|
|
|
|
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
|
|
{
|
|
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
|
|
OutEnvironment.SetDefine(TEXT("DEPTH_RESOLVE_NUM_SAMPLES"), 8);
|
|
}
|
|
|
|
FResolveDepth8XPS(const ShaderMetaType::CompiledShaderInitializerType& Initializer) :
|
|
FGlobalShader(Initializer)
|
|
{
|
|
UnresolvedSurface.Bind(Initializer.ParameterMap, TEXT("UnresolvedSurface"), SPF_Mandatory);
|
|
}
|
|
FResolveDepth8XPS() {}
|
|
|
|
void SetParameters(FRHICommandList& RHICmdList, FParameter)
|
|
{
|
|
}
|
|
|
|
LAYOUT_FIELD(FShaderResourceParameter, UnresolvedSurface);
|
|
};
|
|
|
|
class FResolveSingleSamplePS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveSingleSamplePS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
typedef uint32 FParameter;
|
|
|
|
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
|
|
{
|
|
return FDataDrivenShaderPlatformInfo::GetIsLanguageD3D(Parameters.Platform);
|
|
}
|
|
|
|
FResolveSingleSamplePS(const ShaderMetaType::CompiledShaderInitializerType& Initializer):
|
|
FGlobalShader(Initializer)
|
|
{
|
|
UnresolvedSurface.Bind(Initializer.ParameterMap,TEXT("UnresolvedSurface"), SPF_Mandatory);
|
|
SingleSampleIndex.Bind(Initializer.ParameterMap,TEXT("SingleSampleIndex"), SPF_Mandatory);
|
|
}
|
|
FResolveSingleSamplePS() {}
|
|
|
|
RENDERCORE_API void SetParameters(FRHICommandList& RHICmdList, uint32 SingleSampleIndexValue);
|
|
|
|
LAYOUT_FIELD(FShaderResourceParameter, UnresolvedSurface);
|
|
LAYOUT_FIELD(FShaderParameter, SingleSampleIndex);
|
|
};
|
|
|
|
/**
|
|
* A vertex shader for rendering a textured screen element.
|
|
*/
|
|
class FResolveVS : public FGlobalShader
|
|
{
|
|
DECLARE_EXPORTED_SHADER_TYPE(FResolveVS, Global, RENDERCORE_API);
|
|
public:
|
|
|
|
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
|
|
|
|
FResolveVS(const ShaderMetaType::CompiledShaderInitializerType& Initializer)
|
|
: FGlobalShader(Initializer)
|
|
{
|
|
PositionMinMax.Bind(Initializer.ParameterMap, TEXT("PositionMinMax"), SPF_Mandatory);
|
|
UVMinMax.Bind(Initializer.ParameterMap, TEXT("UVMinMax"), SPF_Mandatory);
|
|
}
|
|
FResolveVS() {}
|
|
|
|
RENDERCORE_API void SetParameters(FRHICommandList& RHICmdList, const FResolveRect& SrcBounds, const FResolveRect& DstBounds, uint32 DstSurfaceWidth, uint32 DstSurfaceHeight);
|
|
|
|
LAYOUT_FIELD(FShaderParameter, PositionMinMax);
|
|
LAYOUT_FIELD(FShaderParameter, UVMinMax);
|
|
};
|