UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UpdateTextureShaders.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "CoreMinimal.h"
8#include "ShaderParameters.h"
9#include "Shader.h"
10#include "GlobalShader.h"
12#include "ShaderCompilerCore.h"
13
15{
16 Float,
17 Int32,
18 Uint32
19};
20
40
42{
44public:
48 {
49 SrcPosPitchParameter.Bind(Initializer.ParameterMap, TEXT("TSrcPosPitch"), SPF_Mandatory);
50 SrcBuffer.Bind(Initializer.ParameterMap, TEXT("TSrcBuffer"), SPF_Mandatory);
51 DestPosSizeParameter.Bind(Initializer.ParameterMap, TEXT("TDestPosSize"), SPF_Mandatory);
52 DestTexture.Bind(Initializer.ParameterMap, TEXT("TDestTexture"), SPF_Mandatory);
53 }
54
55 static const TCHAR* GetSourceFilename() { return TEXT("/Engine/Private/UpdateTextureShaders.usf"); }
56 static const TCHAR* GetFunctionName() { return TEXT("TUpdateTexture2DSubresourceCS"); }
57
59
74
79
81
82protected:
83 template<typename ShaderType>
85};
86
87template<EUpdateTextureValueType ValueType>
111
112template <typename ShaderType>
118
120{
121 switch (ValueType)
122 {
123 default: checkNoEntry();
124 case EUpdateTextureValueType::Float: return FUpdateTexture2DSubresourceCS::SelectShader<TUpdateTexture2DSubresourceCS<EUpdateTextureValueType::Float>>(GlobalShaderMap);
125 case EUpdateTextureValueType::Int32: return FUpdateTexture2DSubresourceCS::SelectShader<TUpdateTexture2DSubresourceCS<EUpdateTextureValueType::Int32>>(GlobalShaderMap);
126 case EUpdateTextureValueType::Uint32: return FUpdateTexture2DSubresourceCS::SelectShader<TUpdateTexture2DSubresourceCS<EUpdateTextureValueType::Uint32>>(GlobalShaderMap);
127 }
128}
129
162
163template<uint32 ElementsPerThread>
165{
167public:
171 {
172 SrcBuffer.Bind(Initializer.ParameterMap, TEXT("SrcCopyBuffer"), SPF_Mandatory);
173 DestBuffer.Bind(Initializer.ParameterMap, TEXT("DestBuffer"), SPF_Mandatory);
174 }
175
176 static const TCHAR* GetSourceFilename() { return TEXT("/Engine/Private/UpdateTextureShaders.usf"); }
177
178 static const TCHAR* GetFunctionName()
179 {
180 switch (ElementsPerThread)
181 {
182 case 1u: return TEXT("CopyData1CS"); break;
183 case 2u: return TEXT("CopyData2CS"); break;
184 }
185 return nullptr;
186 }
187
190};
#define checkNoEntry()
Definition AssertionMacros.h:316
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
@ SPF_Mandatory
Definition ShaderParameters.h:51
#define DECLARE_EXPORTED_SHADER_TYPE(ShaderClass, ShaderMetaTypeShortcut, RequiredAPI,...)
Definition Shader.h:1683
EUpdateTextureValueType
Definition UpdateTextureShaders.h:15
uint32_t uint32
Definition binka_ue_file_header.h:6
static const bool GetRequiresBindfulUtilityShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:819
Definition GlobalShader.h:173
RENDERCORE_API TShaderRef< FShader > GetShader(FShaderType *ShaderType, int32 PermutationId=0) const
Definition GlobalShader.cpp:608
Definition GlobalShader.h:269
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &Environment)
Definition GlobalShader.h:289
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
Definition UpdateTextureShaders.h:42
static TShaderRef< FUpdateTexture2DSubresourceCS > SelectShader(FGlobalShaderMap *GlobalShaderMap, EUpdateTextureValueType ValueType)
Definition UpdateTextureShaders.h:119
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FUpdateTextureRegion2D &UpdateRegionInBlocks, uint32 SrcElementPitch)
Definition UpdateTextureShaders.h:60
LAYOUT_FIELD(FShaderResourceParameter, DestTexture)
LAYOUT_FIELD(FShaderResourceParameter, SrcBuffer)
FUpdateTexture2DSubresourceCS()
Definition UpdateTextureShaders.h:45
FUpdateTexture2DSubresourceCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition UpdateTextureShaders.h:46
LAYOUT_FIELD(FShaderParameter, DestPosSizeParameter)
LAYOUT_FIELD(FShaderParameter, SrcPosPitchParameter)
static const TCHAR * GetFunctionName()
Definition UpdateTextureShaders.h:56
static const TCHAR * GetSourceFilename()
Definition UpdateTextureShaders.h:55
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition UpdateTextureShaders.h:30
Definition UpdateTextureShaders.h:131
FUpdateTexture3DSubresourceCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition UpdateTextureShaders.h:135
LAYOUT_FIELD(FShaderParameter, DestPosParameter)
LAYOUT_FIELD(FShaderParameter, SrcPitchParameter)
FUpdateTexture3DSubresourceCS()
Definition UpdateTextureShaders.h:134
static const TCHAR * GetSourceFilename()
Definition UpdateTextureShaders.h:149
LAYOUT_FIELD(FShaderParameter, SrcDepthPitchParameter)
LAYOUT_FIELD(FShaderResourceParameter, SrcBuffer)
static const TCHAR * GetFunctionName()
Definition UpdateTextureShaders.h:151
LAYOUT_FIELD(FShaderParameter, DestSizeParameter)
Definition UpdateTextureShaders.h:22
FUpdateTextureShaderBase()
Definition UpdateTextureShaders.h:24
FUpdateTextureShaderBase(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition UpdateTextureShaders.h:25
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition UpdateTextureShaders.h:30
Definition UpdateTextureShaders.h:165
static const TCHAR * GetFunctionName()
Definition UpdateTextureShaders.h:178
LAYOUT_FIELD(FShaderResourceParameter, SrcBuffer)
static const TCHAR * GetSourceFilename()
Definition UpdateTextureShaders.h:176
TCopyDataCS()
Definition UpdateTextureShaders.h:168
TCopyDataCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition UpdateTextureShaders.h:169
LAYOUT_FIELD(FShaderResourceParameter, DestBuffer)
Definition Shader.h:1021
Definition UpdateTextureShaders.h:89
TUpdateTexture2DSubresourceCS()
Definition UpdateTextureShaders.h:92
TUpdateTexture2DSubresourceCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition UpdateTextureShaders.h:93
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition UpdateTextureShaders.h:97
Definition GlobalShader.h:73
Definition RHIShaderParameters.h:241
Definition Shader.h:1610
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
Definition RHITypes.h:127