Files
UnrealEngineUWP/Engine/Source/Developer/ShaderPreprocessor/Private/PreprocessorPrivate.h

58 lines
1.5 KiB
C
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "CoreMinimal.h"
#include "ShaderCore.h"
#include "ShaderCompilerCore.h"
#include "ShaderPreprocessTypes.h"
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
enum class EMessageType
{
Error = 0,
Warn = 1,
ShaderMetaData = 2,
};
/**
* Filter preprocessor errors.
* @param ErrorMsg - The error message.
* @returns true if the message is valid and has not been filtered out.
*/
inline EMessageType FilterPreprocessorError(const FString& ErrorMsg)
{
const TCHAR* SubstringsToFilter[] =
{
TEXT("Unknown encoding:"),
TEXT("with no newline, supplemented newline"),
TEXT("Converted [CR+LF] to [LF]")
};
const int32 FilteredSubstringCount = UE_ARRAY_COUNT(SubstringsToFilter);
if (ErrorMsg.Contains(TEXT("UESHADERMETADATA")))
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
{
return EMessageType::ShaderMetaData;
}
for (int32 SubstringIndex = 0; SubstringIndex < FilteredSubstringCount; ++SubstringIndex)
{
if (ErrorMsg.Contains(SubstringsToFilter[SubstringIndex]))
{
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
return EMessageType::Warn;
}
}
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
return EMessageType::Error;
}
static void ExtractDirective(FString& OutString, FString WarningString)
{
static const FString PrefixString = TEXT("UESHADERMETADATA_");
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
uint32 DirectiveStartPosition = WarningString.Find(PrefixString) + PrefixString.Len();
uint32 DirectiveEndPosition = WarningString.Find(TEXT("\n"));
if (DirectiveEndPosition == INDEX_NONE)
{
DirectiveEndPosition = WarningString.Len();
}
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3573247) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3517651 by Ben.Woodhouse Integrate from //UE4/Main/...@3517493 to //UE4/Dev-Console/... Change 3519614 by Ben.Woodhouse Disable XGE shader compile Change 3524092 by Ben.Woodhouse FastVRam configurability - expose cvars to control fast vram usage for many rendertargets and buffers so that licensees can configure and find good values. Add support for tweaking values at runtime Change 3530731 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3530708) to Dev-Console (//UE4/Dev-Console) Change 3537544 by Daniel.Eldar [General] Fixed an issue where the level streamer would not stream in a level until it finished streaming out another one. #jira UE-46954 Change 3540227 by Ben.Woodhouse Integrate from //UE4/Main/...@3539942 to //UE4/Dev-Console/... Change 3548390 by Keith.Judge Edigrate 3547845 to Dev-Console. Fix for UE-46826 - Correct mismatching game content base directories when using the network file server layer #jira UE-47570 Change 3563801 by Luke.Thatcher [CONSOLE] [STREAMS] [^] Merging //UE4/Dev-Main (CL 3557944) to Dev-Console (//UE4/Dev-Console) Change 3566413 by Luke.Thatcher [CONSOLE] [~] Fix build warning from bad merge of NetworkFileServerConnection.cpp - CL 3512255 renamed GameDir to ProjectDir, but we lost this change in the merge. Change 3566420 by Daniel.Eldar [General] Added a toggle vibration option to ShooterGame. #jira UE-47776 Change 3570476 by Ben.Woodhouse Fix for static analysis failure (disable innoccuous warning) #jira UE-48003 Change 3571837 by Ben.Woodhouse Integrate from //UE4/Main/...@3571062 to //UE4/Dev-Console/... Change 3572554 by Ben.Woodhouse Fix static analysis warning (disabling the warning didn't work) #jira UE-48050 [CL 3573409 by Joe Barnes in Main branch]
2017-08-04 17:24:53 -04:00
OutString = WarningString.Mid(DirectiveStartPosition, (DirectiveEndPosition - DirectiveStartPosition));
}