Skip to content

Commit 78203c7

Browse files
authored
v80.0 HotPatcher Modular (#72)
1 parent 32cb38b commit 78203c7

File tree

57 files changed

+1077
-1701
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1077
-1701
lines changed

.gitmodules

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,12 @@
1010
[submodule "Mods/HotChunker"]
1111
path = Mods/HotChunker
1212
url = git@github.com:hxhb/HotChunker.git
13+
[submodule "Mods/HDiffPatchUE"]
14+
path = Mods/HDiffPatchUE
15+
url = git@github.com:hxhb/HDiffPatchUE.git
16+
[submodule "Mods/GameFeaturePacker"]
17+
path = Mods/GameFeaturePacker
18+
url = git@github.com:hxhb/GameFeaturePacker.git
19+
[submodule "Mods/ShaderPatcherUE"]
20+
path = Mods/ShaderPatcherUE
21+
url = git@github.com:hxhb/ShaderPatcherUE.git

HotPatcher/HotPatcher.uplugin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
{
2424
"Name": "HotPatcherCore",
2525
"Type": "Editor",
26-
"LoadingPhase": "Default"
26+
"LoadingPhase": "PreDefault"
2727
},
2828
{
2929
"Name": "HotPatcherRuntime",
72.5 KB
Loading
144 KB
Loading

HotPatcher/Source/CmdHandler/CmdHandler.Build.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public CmdHandler(ReadOnlyTargetRules Target) : base(Target)
3434
"Json",
3535
"SandboxFile",
3636
"JsonUtilities",
37-
"Settings",
3837
// ... add other public dependencies that you statically link with here ...
3938
}
4039
);

HotPatcher/Source/CmdHandler/Private/CmdHandler.cpp

Lines changed: 54 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,44 +14,50 @@ bool OverrideConfigValue(const FString& FileName,const FString& Section,const FS
1414
if(GConfig->GetInt( *Section, *Key, DefaultValue, FileName ))
1515
{
1616
GConfig->SetInt( *Section, *Key, NewValue, FileName );
17-
UE_LOG(LogCmdHandler, Display, TEXT("Override section: %s key: %s from %d to %d."), *Section,*Key,DefaultValue,NewValue);
17+
UE_LOG(LogCmdHandler, Display, TEXT("Override Section: %s key: %s from %d to %d."), *Section,*Key,DefaultValue,NewValue);
1818
bRet = true;
1919
}
2020
else
2121
{
22-
UE_LOG(LogCmdHandler, Warning, TEXT("section: %s key: %s is not found!"), *Section,*Key);
22+
UE_LOG(LogCmdHandler, Warning, TEXT("Override Section: %s key: %s is not found!"), *Section,*Key);
2323
}
2424
return bRet;
2525
}
2626

27+
#if WITH_EDITOR
28+
static bool bDDCUrl = false;
2729
static FString MultiCookerDDCBackendName = TEXT("MultiCookerDDC");
28-
void AddMultiCookerBackendToConfig(const FString& DDCAddr)
30+
bool AddMultiCookerBackendToConfig(const FString& DDCAddr)
2931
{
30-
if(DDCAddr.IsEmpty())
32+
bool bStatus = false;
33+
UE_LOG(LogCmdHandler,Display,TEXT("-ddcurl: %s"),*DDCAddr);
34+
if(DDCAddr.IsEmpty() || DDCAddr.StartsWith(TEXT(" ")))
3135
{
3236
UE_LOG(LogCmdHandler, Warning, TEXT("not use MultiCookerDDC"));
33-
return;
37+
return bStatus;
3438
}
3539
auto EngineIniIns = GConfig->FindConfigFile(GEngineIni);
3640
auto MultiCookerDDCBackendSection = EngineIniIns->FindOrAddSection(MultiCookerDDCBackendName);
37-
41+
MultiCookerDDCBackendSection->Empty();
42+
3843
auto UpdateKeyLambda = [](FConfigSection* Section,const FString& Key,const FString& Value)
3944
{
4045
if(Section->Find(*Key))
4146
{
4247
Section->Remove(*Key);
4348
}
49+
UE_LOG(LogCmdHandler, Display, TEXT("Override Section MultiCookerDDC key: %s to %d."),*Key,*Value);
4450
Section->Add(*Key,FConfigValue(*Value));
4551
};
4652

4753
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("MinimumDaysToKeepFile"),TEXT("7"));
4854
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("Root"),TEXT("(Type=KeyLength, Length=120, Inner=AsyncPut)"));
4955
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("AsyncPut"),TEXT("(Type=AsyncPut, Inner=Hierarchy)"));
50-
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("Hierarchy"),TEXT("(Type=Hierarchical, Inner=Boot, Inner=PakWrite, Inner=PakRead, Inner=Local, Inner=Shared)"));
56+
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("Hierarchy"),TEXT("(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=EnginePak, Inner=Local, Inner=Shared)"));
5157
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("Boot"),TEXT("(Type=Boot, Filename=\"%GAMEDIR%DerivedDataCache/Boot.ddc\", MaxCacheSize=512)"));
5258

5359
FString DDC = FString::Printf(
54-
TEXT("(Type=FileSystem, ReadOnly=false, Clean=true, Flush=false, DeleteUnused=true, UnusedFileAge=10, FoldersToClean=10, MaxFileChecksPerSec=1, ConsiderSlowAt=70, PromptIfMissing=false, Path=%s, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)"),
60+
TEXT("(Type=FileSystem, ReadOnly=false, Clean=true, Flush=false, DeleteUnused=false, UnusedFileAge=10, FoldersToClean=10, MaxFileChecksPerSec=1, Path=%s, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)"),
5561
*DDCAddr
5662
);
5763
UpdateKeyLambda(MultiCookerDDCBackendSection,TEXT("Shared"),DDC);
@@ -61,13 +67,15 @@ void AddMultiCookerBackendToConfig(const FString& DDCAddr)
6167
{
6268
DDCBackendName = MultiCookerDDCBackendName;
6369
FCommandLine::Append(*FString::Printf(TEXT(" -ddc=%s"),*DDCBackendName));
64-
UE_LOG(LogCmdHandler, Warning, TEXT("Append cmd: %s"),FCommandLine::Get());
70+
UE_LOG(LogCmdHandler, Display, TEXT("Append cmd: %s"),FCommandLine::Get());
71+
bStatus = true;
6572
}
66-
UE_LOG(LogCmdHandler, Warning, TEXT("use MultiCookerDDC: %s"),*DDCBackendName);
73+
74+
UE_LOG(LogCmdHandler, Display, TEXT("Use DDCBackend: %s"),*DDCBackendName);
75+
return bStatus;
6776
}
6877

69-
static bool bDDCUrl = false;
70-
void FCmdHandlerModule::StartupModule()
78+
void OverrideEditorEnv()
7179
{
7280
int32 OverrideNumUnusedShaderCompilingThreads = 3;
7381
if(FParse::Value(FCommandLine::Get(), TEXT("-MaxShaderWorker="), OverrideNumUnusedShaderCompilingThreads))
@@ -92,19 +100,50 @@ void FCmdHandlerModule::StartupModule()
92100
FString DDCURL;
93101
if(FParse::Value(FCommandLine::Get(),TEXT("-ddcurl="),DDCURL) && !DDCURL.IsEmpty())
94102
{
95-
AddMultiCookerBackendToConfig(DDCURL);
96-
bDDCUrl = true;
103+
bDDCUrl = AddMultiCookerBackendToConfig(DDCURL);
97104
}
98105
}
99106

100-
void FCmdHandlerModule::ShutdownModule()
107+
void UnOverrideEditorEnv()
101108
{
102109
if(bDDCUrl)
103110
{
104111
auto EngineIniIns = GConfig->FindConfigFile(GEngineIni);
105112
EngineIniIns->Remove(MultiCookerDDCBackendName);
106113
}
107114
}
115+
116+
#else
117+
118+
void OverrideRuntimeEnv()
119+
{
120+
121+
}
122+
123+
void UnOverrideRuntimeEnv()
124+
{
125+
126+
}
127+
#endif
128+
129+
void FCmdHandlerModule::StartupModule()
130+
{
131+
#if WITH_EDITOR
132+
OverrideEditorEnv();
133+
#else
134+
OverrideRuntimeEnv();
135+
#endif
136+
}
137+
138+
void FCmdHandlerModule::ShutdownModule()
139+
{
140+
#if WITH_EDITOR
141+
UnOverrideEditorEnv();
142+
#else
143+
UnOverrideRuntimeEnv();
144+
#endif
145+
}
146+
108147
#undef LOCTEXT_NAMESPACE
109148

110149
IMPLEMENT_MODULE(FCmdHandlerModule, CmdHandler)

HotPatcher/Source/HotPatcherCore/Classes/Commandlets/Cooker/HotAssetScannerCommandlet.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
#include "HotAssetScannerCommandlet.h"
2-
#include "ShaderPatch/FExportShaderPatchSettings.h"
32
#include "CommandletHelper.h"
43
// engine header
54
#include "CoreMinimal.h"
5+
#include "FlibPatchParserHelper.h"
66
#include "Async/ParallelFor.h"
77
#include "Misc/FileHelper.h"
88
#include "Misc/CommandLine.h"
99
#include "Misc/Paths.h"
10-
#include "ShaderPatch/FExportShaderPatchSettings.h"
11-
#include "ShaderPatch/ShaderPatchProxy.h"
1210
#include "BaseTypes/FPackageTracker.h"
1311
DEFINE_LOG_CATEGORY(LogHotAssetScannerCommandlet);
1412

HotPatcher/Source/HotPatcherCore/Classes/Commandlets/Cooker/HotGlobalShaderCommandlet.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#include "HotGlobalShaderCommandlet.h"
2-
#include "ShaderPatch/FExportShaderPatchSettings.h"
32
#include "CommandletHelper.h"
43
// engine header
54
#include "CoreMinimal.h"
65
#include "FlibHotPatcherCoreHelper.h"
76
#include "Async/ParallelFor.h"
87
#include "Cooker/MultiCooker/FlibHotCookerHelper.h"
8+
#include "Kismet/KismetStringLibrary.h"
99
#include "Misc/FileHelper.h"
1010
#include "Misc/CommandLine.h"
1111
#include "Misc/Paths.h"
12-
#include "ShaderPatch/FlibShaderCodeLibraryHelper.h"
12+
#include "ShaderLibUtils/FlibShaderCodeLibraryHelper.h"
1313

1414
#define PLATFORMS_PARAM_NAME TEXT("-platforms=")
1515
#define SAVETO_PARAM_NAME TEXT("-saveto=")

HotPatcher/Source/HotPatcherCore/Classes/Commandlets/HotPluginCommandlet.cpp

Lines changed: 0 additions & 78 deletions
This file was deleted.

HotPatcher/Source/HotPatcherCore/Classes/Commandlets/HotPluginCommandlet.h

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)