Initial Commit

This commit is contained in:
Norman Lansing
2026-01-28 19:08:51 -05:00
commit ecb33115bf
54042 changed files with 9695586 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
// Copyright Epic Games, Inc. All Rights Reserved.
/*===========================================================================
Generated code exported from UnrealHeaderTool.
DO NOT modify this manually! Edit the corresponding .h files instead!
===========================================================================*/
#include "UObject/GeneratedCppIncludes.h"
#include "Commandlets/DumpMaterialExpressionInfo.h"
PRAGMA_DISABLE_DEPRECATION_WARNINGS
static_assert(!UE_WITH_CONSTINIT_UOBJECT, "This generated code can only be compiled with !UE_WITH_CONSTINIT_OBJECT");
void EmptyLinkFunctionForGeneratedCodeDumpMaterialExpressionInfo() {}
// ********** Begin Cross Module References ********************************************************
ENGINE_API UClass* Z_Construct_UClass_UCommandlet();
UNREALED_API UClass* Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet();
UNREALED_API UClass* Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_NoRegister();
UPackage* Z_Construct_UPackage__Script_UnrealEd();
// ********** End Cross Module References **********************************************************
// ********** Begin Class UDumpMaterialExpressionInfoCommandlet ************************************
FClassRegistrationInfo Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet;
UClass* UDumpMaterialExpressionInfoCommandlet::GetPrivateStaticClass()
{
using TClass = UDumpMaterialExpressionInfoCommandlet;
if (!Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.InnerSingleton)
{
GetPrivateStaticClassBody(
TClass::StaticPackage(),
TEXT("DumpMaterialExpressionInfoCommandlet"),
Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.InnerSingleton,
StaticRegisterNativesUDumpMaterialExpressionInfoCommandlet,
sizeof(TClass),
alignof(TClass),
TClass::StaticClassFlags,
TClass::StaticClassCastFlags(),
TClass::StaticConfigName(),
(UClass::ClassConstructorType)InternalConstructor<TClass>,
(UClass::ClassVTableHelperCtorCallerType)InternalVTableHelperCtorCaller<TClass>,
UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS(TClass),
&TClass::Super::StaticClass,
&TClass::WithinClass::StaticClass
);
}
return Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.InnerSingleton;
}
UClass* Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_NoRegister()
{
return UDumpMaterialExpressionInfoCommandlet::GetPrivateStaticClass();
}
struct Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics
{
#if WITH_METADATA
static constexpr UECodeGen_Private::FMetaDataPairParam Class_MetaDataParams[] = {
{ "Comment", "/**\n Finds all instances of material expressions and dumps their data to a csv.\n \n # CUSTOM HLSL EXAMPLE\n You can dump all custom hlsl nodes and their code with \n `<YourProject> -dx12 -run=DumpMaterialExpressionInfo -unattended -expression=MaterialExpressionCustom -columns=Code -csv=C:/output.csv`\n\n The output can then be loaded into sqlite for querying with \n .separator \",\"\n .import C:/output.csv tbl --csv\n .save output.db\n Then you can, for example, order by hlsl snippet length:\n SELECT * FROM tbl ORDER BY length(Code)\n\n This can also be connected to R to do analysis:\n install.packages(\"RSQLite\")\n library(RSQLite)\n conn <- dbConnect(RSQLite::SQLite(), \"output.db\")\n For example, a histogram of snippet length:\n result <- dbGetQuery(conn, \"SELECT length(Code) FROM tbl\")\n hist(result$`length(Code)`)\n Or a treemap showing which folders and assets have the most custom HLSL code nodes\n result <- dbGetQuery(conn, \"SELECT Name,length(Code) FROM tbl\")\n name <- strsplit(result$Name, \"/\")\n -- Get maximum number of path segments\n name_max_length <- max(sapply(name, length))\n -- Make every asset path have the same number of segments (columns)\n name_padded_list <- lapply(name, function(x) {\n length(x) <- name_max_length\n return(x)\n })\n -- Convert to matrix, trim empty space from front\n name_matrix <- do.call(rbind, name_padded_list)\n name_matrix <- name_matrix[,-1]\n -- Make treemap\n df <- as.data.frame(name_matrix)\n -- To weight by volume of code instead of number of nodes, use df$Value <- result$`length(Code)`\n df$Value <- rep(1, times=length(result$`length(Code)`))\n treemap(df, index = c(\"V1\", \"V2\", \"V3\"), vSize=\"Value\")\n */" },
{ "IncludePath", "Commandlets/DumpMaterialExpressionInfo.h" },
{ "ModuleRelativePath", "Classes/Commandlets/DumpMaterialExpressionInfo.h" },
{ "ToolTip", "Finds all instances of material expressions and dumps their data to a csv.\n\n# CUSTOM HLSL EXAMPLE\nYou can dump all custom hlsl nodes and their code with\n`<YourProject> -dx12 -run=DumpMaterialExpressionInfo -unattended -expression=MaterialExpressionCustom -columns=Code -csv=C:/output.csv`\n\nThe output can then be loaded into sqlite for querying with\n .separator \",\"\n .import C:/output.csv tbl --csv\n .save output.db\nThen you can, for example, order by hlsl snippet length:\n SELECT * FROM tbl ORDER BY length(Code)\n\nThis can also be connected to R to do analysis:\n install.packages(\"RSQLite\")\n library(RSQLite)\n conn <- dbConnect(RSQLite::SQLite(), \"output.db\")\nFor example, a histogram of snippet length:\n result <- dbGetQuery(conn, \"SELECT length(Code) FROM tbl\")\n hist(result$`length(Code)`)\nOr a treemap showing which folders and assets have the most custom HLSL code nodes\n result <- dbGetQuery(conn, \"SELECT Name,length(Code) FROM tbl\")\n name <- strsplit(result$Name, \"/\")\n -- Get maximum number of path segments\n name_max_length <- max(sapply(name, length))\n -- Make every asset path have the same number of segments (columns)\n name_padded_list <- lapply(name, function(x) {\n length(x) <- name_max_length\n return(x)\n })\n -- Convert to matrix, trim empty space from front\n name_matrix <- do.call(rbind, name_padded_list)\n name_matrix <- name_matrix[,-1]\n -- Make treemap\n df <- as.data.frame(name_matrix)\n -- To weight by volume of code instead of number of nodes, use df$Value <- result$`length(Code)`\n df$Value <- rep(1, times=length(result$`length(Code)`))\n treemap(df, index = c(\"V1\", \"V2\", \"V3\"), vSize=\"Value\")" },
};
#endif // WITH_METADATA
// ********** Begin Class UDumpMaterialExpressionInfoCommandlet constinit property declarations ****
// ********** End Class UDumpMaterialExpressionInfoCommandlet constinit property declarations ******
static UObject* (*const DependentSingletons[])();
static constexpr FCppClassTypeInfoStatic StaticCppClassTypeInfo = {
TCppClassTypeTraits<UDumpMaterialExpressionInfoCommandlet>::IsAbstract,
};
static const UECodeGen_Private::FClassParams ClassParams;
}; // struct Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics
UObject* (*const Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::DependentSingletons[])() = {
(UObject* (*)())Z_Construct_UClass_UCommandlet,
(UObject* (*)())Z_Construct_UPackage__Script_UnrealEd,
};
static_assert(UE_ARRAY_COUNT(Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::DependentSingletons) < 16);
const UECodeGen_Private::FClassParams Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::ClassParams = {
&UDumpMaterialExpressionInfoCommandlet::StaticClass,
"Editor",
&StaticCppClassTypeInfo,
DependentSingletons,
nullptr,
nullptr,
nullptr,
UE_ARRAY_COUNT(DependentSingletons),
0,
0,
0,
0x000000A8u,
METADATA_PARAMS(UE_ARRAY_COUNT(Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::Class_MetaDataParams), Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::Class_MetaDataParams)
};
void UDumpMaterialExpressionInfoCommandlet::StaticRegisterNativesUDumpMaterialExpressionInfoCommandlet()
{
}
UClass* Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet()
{
if (!Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.OuterSingleton)
{
UECodeGen_Private::ConstructUClass(Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.OuterSingleton, Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet_Statics::ClassParams);
}
return Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet.OuterSingleton;
}
DEFINE_VTABLE_PTR_HELPER_CTOR_NS(, UDumpMaterialExpressionInfoCommandlet);
UDumpMaterialExpressionInfoCommandlet::~UDumpMaterialExpressionInfoCommandlet() {}
// ********** End Class UDumpMaterialExpressionInfoCommandlet **************************************
// ********** Begin Registration *******************************************************************
struct Z_CompiledInDeferFile_FID_Engine_Source_Editor_UnrealEd_Classes_Commandlets_DumpMaterialExpressionInfo_h__Script_UnrealEd_Statics
{
static constexpr FClassRegisterCompiledInInfo ClassInfo[] = {
{ Z_Construct_UClass_UDumpMaterialExpressionInfoCommandlet, UDumpMaterialExpressionInfoCommandlet::StaticClass, TEXT("UDumpMaterialExpressionInfoCommandlet"), &Z_Registration_Info_UClass_UDumpMaterialExpressionInfoCommandlet, CONSTRUCT_RELOAD_VERSION_INFO(FClassReloadVersionInfo, sizeof(UDumpMaterialExpressionInfoCommandlet), 3694357617U) },
};
}; // Z_CompiledInDeferFile_FID_Engine_Source_Editor_UnrealEd_Classes_Commandlets_DumpMaterialExpressionInfo_h__Script_UnrealEd_Statics
static FRegisterCompiledInInfo Z_CompiledInDeferFile_FID_Engine_Source_Editor_UnrealEd_Classes_Commandlets_DumpMaterialExpressionInfo_h__Script_UnrealEd_1518404091{
TEXT("/Script/UnrealEd"),
Z_CompiledInDeferFile_FID_Engine_Source_Editor_UnrealEd_Classes_Commandlets_DumpMaterialExpressionInfo_h__Script_UnrealEd_Statics::ClassInfo, UE_ARRAY_COUNT(Z_CompiledInDeferFile_FID_Engine_Source_Editor_UnrealEd_Classes_Commandlets_DumpMaterialExpressionInfo_h__Script_UnrealEd_Statics::ClassInfo),
nullptr, 0,
nullptr, 0,
};
// ********** End Registration *********************************************************************
PRAGMA_ENABLE_DEPRECATION_WARNINGS