278 lines
11 KiB
C
278 lines
11 KiB
C
/*
|
|
* Copyright (c) <2021> Side Effects Software Inc.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. The name of Side Effects Software may not be used to endorse or
|
|
* promote products derived from this software without specific prior
|
|
* written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY SIDE EFFECTS SOFTWARE "AS IS" AND ANY EXPRESS
|
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
|
* NO EVENT SHALL SIDE EFFECTS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Logging/LogMacros.h"
|
|
|
|
// Define module names.
|
|
#define HOUDINI_MODULE "HoudiniEngine"
|
|
#define HOUDINI_MODULE_EDITOR "HoudiniEngineEditor"
|
|
#define HOUDINI_MODULE_RUNTIME "HoudiniEngineRuntime"
|
|
|
|
// Declare the log category depending on the module we're in
|
|
#ifdef HOUDINI_ENGINE_EDITOR
|
|
#define HOUDINI_LOCTEXT_NAMESPACE HOUDINI_MODULE_EDITOR
|
|
HOUDINIENGINEEDITOR_API DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngineEditor, Log, All);
|
|
#else
|
|
#ifdef HOUDINI_ENGINE
|
|
#define HOUDINI_LOCTEXT_NAMESPACE HOUDINI_MODULE
|
|
HOUDINIENGINE_API DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngine, Log, All);
|
|
#else
|
|
#define HOUDINI_LOCTEXT_NAMESPACE HOUDINI_MODULE_RUNTIME
|
|
HOUDINIENGINERUNTIME_API DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngineRuntime, Log, All);
|
|
#endif
|
|
#endif
|
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
// Default session settings
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
#define HAPI_UNREAL_SESSION_SERVER_AUTOSTART true
|
|
#define HAPI_UNREAL_SESSION_SERVER_TIMEOUT 3000.0f
|
|
#define HAPI_UNREAL_SESSION_SERVER_HOST TEXT( "localhost" )
|
|
#define HAPI_UNREAL_SESSION_SERVER_PORT 9090
|
|
#if PLATFORM_MAC
|
|
#define HAPI_UNREAL_SESSION_SERVER_PIPENAME TEXT( "/tmp/hapi" )
|
|
#else
|
|
#define HAPI_UNREAL_SESSION_SERVER_PIPENAME TEXT( "hapi" )
|
|
#endif
|
|
|
|
|
|
|
|
// Names of HAPI libraries on different platforms.
|
|
#define HAPI_LIB_OBJECT_WINDOWS TEXT( "libHAPIL.dll" )
|
|
#define HAPI_LIB_OBJECT_MAC TEXT( "libHAPIL.dylib" )
|
|
#define HAPI_LIB_OBJECT_LINUX TEXT( "libHAPIL.so" )
|
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
// LOG MACROS
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
// Whether to enable logging.
|
|
#define HOUDINI_ENGINE_LOGGING 1
|
|
|
|
#ifdef HOUDINI_ENGINE_LOGGING
|
|
#ifdef HOUDINI_ENGINE
|
|
#define HOUDINI_LOG_HELPER(VERBOSITY, HOUDINI_LOG_TEXT, ...) \
|
|
do \
|
|
{ \
|
|
UE_LOG( LogHoudiniEngine, VERBOSITY, HOUDINI_LOG_TEXT, ##__VA_ARGS__ ); \
|
|
} \
|
|
while ( 0 )
|
|
#else
|
|
#ifdef HOUDINI_ENGINE_EDITOR
|
|
#define HOUDINI_LOG_HELPER(VERBOSITY, HOUDINI_LOG_TEXT, ...) \
|
|
do \
|
|
{ \
|
|
UE_LOG( LogHoudiniEngineEditor, VERBOSITY, HOUDINI_LOG_TEXT, ##__VA_ARGS__ ); \
|
|
} \
|
|
while ( 0 )
|
|
#else
|
|
#define HOUDINI_LOG_HELPER( VERBOSITY, HOUDINI_LOG_TEXT, ... ) \
|
|
do \
|
|
{ \
|
|
UE_LOG( LogHoudiniEngineRuntime, VERBOSITY, HOUDINI_LOG_TEXT, ##__VA_ARGS__ ); \
|
|
} \
|
|
while ( 0 )
|
|
#endif
|
|
#endif
|
|
|
|
#define HOUDINI_LOG_MESSAGE( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_LOG_HELPER( Log, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
|
|
#define HOUDINI_LOG_FATAL( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_LOG_HELPER( Fatal, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
|
|
#define HOUDINI_LOG_ERROR( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_LOG_HELPER( Error, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
|
|
#define HOUDINI_LOG_WARNING( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_LOG_HELPER( Warning, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
|
|
#define HOUDINI_LOG_DISPLAY( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_LOG_HELPER( Display, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#else
|
|
#define HOUDINI_LOG_MESSAGE( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LOG_FATAL( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LOG_ERROR( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LOG_WARNING( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LOG_DISPLAY( HOUDINI_LOG_TEXT, ... )
|
|
#endif
|
|
|
|
|
|
#define HOUDINI_DEBUG_EXPAND_UE_LOG(LONG_NAME, VERBOSITY, HOUDINI_LOG_TEXT, ...) \
|
|
do \
|
|
{ \
|
|
UE_LOG( LogHoudiniEngine##LONG_NAME, VERBOSITY, HOUDINI_LOG_TEXT, ##__VA_ARGS__ ); \
|
|
} \
|
|
while ( 0 )
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
// Blueprint Debug Logging
|
|
// ---------------------------------------------------------
|
|
// Set HOUDINI_ENGINE_DEBUG_BP=1 to enable Blueprint logging
|
|
#if defined(HOUDINI_ENGINE_LOGGING) && defined(HOUDINI_ENGINE_DEBUG_BP)
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngineBlueprint, Log, All);
|
|
#define HOUDINI_BP_DEFINE_LOG_CATEGORY() \
|
|
DEFINE_LOG_CATEGORY(LogHoudiniEngineBlueprint);
|
|
#define HOUDINI_BP_MESSAGE( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Blueprint, Log, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BP_FATAL( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Blueprint, Fatal, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BP_ERROR( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Blueprint, Error, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BP_WARNING( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Blueprint, Warning, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#else
|
|
#define HOUDINI_BP_DEFINE_LOG_CATEGORY()
|
|
#define HOUDINI_BP_MESSAGE( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BP_FATAL( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BP_ERROR( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BP_WARNING( HOUDINI_LOG_TEXT, ... )
|
|
#endif
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
// PDG Debug Logging
|
|
// ---------------------------------------------------------
|
|
// Set HOUDINI_ENGINE_DEBUG_PDG=1 to enable PDG logging
|
|
#if defined(HOUDINI_ENGINE_LOGGING) && defined(HOUDINI_ENGINE_DEBUG_PDG)
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEnginePDG, Log, All);
|
|
#define HOUDINI_PDG_DEFINE_LOG_CATEGORY() \
|
|
DEFINE_LOG_CATEGORY(LogHoudiniEnginePDG);
|
|
#define HOUDINI_PDG_MESSAGE( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( PDG, Log, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_PDG_FATAL( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( PDG, Fatal, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_PDG_ERROR( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( PDG, Error, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_PDG_WARNING( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( PDG, Warning, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#else
|
|
#define HOUDINI_PDG_DEFINE_LOG_CATEGORY()
|
|
#define HOUDINI_PDG_MESSAGE( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_PDG_FATAL( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_PDG_ERROR( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_PDG_WARNING( HOUDINI_LOG_TEXT, ... )
|
|
#endif
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
// Landscape Debug Logging
|
|
// ---------------------------------------------------------
|
|
// Set HOUDINI_ENGINE_DEBUG_LANDSCAPE=1 to enable PDG logging
|
|
#if defined(HOUDINI_ENGINE_LOGGING) && defined(HOUDINI_ENGINE_DEBUG_LANDSCAPE)
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngineLandscape, Log, All);
|
|
#define HOUDINI_LANDSCAPE_DEFINE_LOG_CATEGORY() \
|
|
DEFINE_LOG_CATEGORY(LogHoudiniEngineLandscape);
|
|
#define HOUDINI_LANDSCAPE_MESSAGE( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Log, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_LANDSCAPE_FATAL( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Fatal, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_LANDSCAPE_ERROR( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Error, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_LANDSCAPE_WARNING( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Warning, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#else
|
|
#define HOUDINI_LANDSCAPE_DEFINE_LOG_CATEGORY()
|
|
#define HOUDINI_LANDSCAPE_MESSAGE( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LANDSCAPE_FATAL( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LANDSCAPE_ERROR( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_LANDSCAPE_WARNING( HOUDINI_LOG_TEXT, ... )
|
|
#endif
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
// Baking Debug Logging
|
|
// ---------------------------------------------------------
|
|
// Set HOUDINI_ENGINE_DEBUG_BAKING=1 to enable PDG logging
|
|
#if defined(HOUDINI_ENGINE_LOGGING) && defined(HOUDINI_ENGINE_DEBUG_BAKING)
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogHoudiniEngineBaking, Log, All);
|
|
#define HOUDINI_BAKING_DEFINE_LOG_CATEGORY() \
|
|
DEFINE_LOG_CATEGORY(LogHoudiniEngineBaking);
|
|
#define HOUDINI_BAKING_MESSAGE( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Log, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BAKING_FATAL( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Fatal, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BAKING_ERROR( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Error, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#define HOUDINI_BAKING_WARNING( HOUDINI_LOG_TEXT, ... ) \
|
|
HOUDINI_DEBUG_EXPAND_UE_LOG( Landscape, Warning, HOUDINI_LOG_TEXT, ##__VA_ARGS__ )
|
|
#else
|
|
#define HOUDINI_BAKING_DEFINE_LOG_CATEGORY()
|
|
#define HOUDINI_BAKING_MESSAGE( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BAKING_FATAL( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BAKING_ERROR( HOUDINI_LOG_TEXT, ... )
|
|
#define HOUDINI_BAKING_WARNING( HOUDINI_LOG_TEXT, ... )
|
|
#endif
|
|
|
|
|
|
// HAPI_Common
|
|
enum HAPI_UNREAL_NodeType
|
|
{
|
|
HAPI_UNREAL_NODETYPE_ANY = -1,
|
|
HAPU_UNREAL_NODETYPE_NONE = 0
|
|
};
|
|
|
|
enum HAPI_UNREAL_NodeFlags
|
|
{
|
|
HAPI_UNREAL_NODEFLAGS_ANY = -1,
|
|
HAPI_UNREAL_NODEFLAGS_NONE = 0
|
|
};
|
|
|
|
// Default cook/bake folder
|
|
#define HAPI_UNREAL_DEFAULT_BAKE_FOLDER TEXT("/Game/HoudiniEngine/Bake");
|
|
#define HAPI_UNREAL_DEFAULT_TEMP_COOK_FOLDER TEXT("/Game/HoudiniEngine/Temp");
|
|
|
|
// Various variable names used to store meta information in generated packages.
|
|
// More in HoudiniEnginePrivatePCH.h
|
|
#define HAPI_UNREAL_PACKAGE_META_TEMP_GUID TEXT( "HoudiniPackageTempGUID" )
|
|
|
|
// Default PDG Filters
|
|
#define HAPI_UNREAL_PDG_DEFAULT_TOP_FILTER "HE_";
|
|
#define HAPI_UNREAL_PDG_DEFAULT_TOP_OUTPUT_FILTER "HE_OUT_";
|
|
|
|
// Struct to enable global silent flag - this will force dialogs to not show up.
|
|
struct FHoudiniScopedGlobalSilence
|
|
{
|
|
FHoudiniScopedGlobalSilence()
|
|
{
|
|
bGlobalSilent = GIsSilent;
|
|
GIsSilent = true;
|
|
}
|
|
|
|
~FHoudiniScopedGlobalSilence()
|
|
{
|
|
GIsSilent = bGlobalSilent;
|
|
}
|
|
|
|
bool bGlobalSilent;
|
|
};
|
|
|