121 lines
9.8 KiB
C++
121 lines
9.8 KiB
C++
// 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
|