Files
UnrealEngineUWP/Engine/Source/Programs/Enterprise/Datasmith/DatasmithMaxExporter/Public/DatasmithMaxLogger.h
kerim borchaev b93f25fa9c 3ds Max DirectLink: Messages Dialog, crash on exit fix
- Messages dialog first iteration - modeless, realtime update

#jira UETOOL-4774 UE-136837
#rb benoit.deschenes
#preflight 61bae374dc58e54b332b5311

#ROBOMERGE-AUTHOR: kerim.borchaev
#ROBOMERGE-SOURCE: CL 18477255 in //UE5/Release-5.0/... via CL 18481382
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481480 by kerim borchaev in ue5-release-engine-test branch]
2021-12-16 19:33:40 -05:00

63 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Resources/Windows/resource.h"
#include "DatasmithMaxClassIDs.h"
#include "DatasmithLogger.h"
#include "Templates/SharedPointer.h"
#include "Windows/AllowWindowsPlatformTypes.h"
class INode;
class Mtl;
class Texmap;
class DatasmithMaxLogger :public FDatasmithLogger, public TSharedFromThis<DatasmithMaxLogger>
{
public:
static DatasmithMaxLogger& Get();
void Purge();
void AddPartialSupportedMat(Mtl* Mat);
void AddUnsupportedMat(Mtl* Mat);
void AddPartialSupportedMap(Texmap* Map);
void AddUnsupportedMap(Texmap* Map);
void AddOtherMapWarning(FString Warning);
void AddUnsupportedLight(INode* Light);
void AddUnsupportedUV(INode* Node);
void AddInvalidObj(INode* Node);
TArray<INode*>GetInvalidObjects() const;
void AddInvalidTransform(INode* Node);
bool HasWarnings();
void Show(HWND hDlg);
bool CopyToClipBoard();
FString GetLightDescription(INode* LightNode);
private:
void AddItem(const TCHAR* Msg, HWND Handle, FString& FullMsg);
void AddObjectList(TArray< INode* > ObjectList, HWND Handle, const TCHAR* Header, const TCHAR* Description = nullptr);
TArray<Mtl*> PartialSupportedMats;
TArray<Mtl*> UnsupportedMats;
TArray<Texmap*> PartialSupportedMaps;
TArray<Texmap*> UnsupportedMaps;
TArray<INode*> UnsupportedLight;
TArray<INode*> FailUVs;
TArray<INode*> FailObjs;
TArray<INode*> InvalidTransforms;
FString ShowMessage;
};
INT_PTR CALLBACK MsgListDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam);
#include "Windows/HideWindowsPlatformTypes.h"