summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Maskell <[email protected]>2016-05-31 13:54:29 +0200
committerJason Maskell <[email protected]>2016-05-31 13:54:29 +0200
commit9d4bad02e6eb15ec5cf62681923543776d66e9f1 (patch)
tree1f64f36d04a518a1369ce9e34ba30b0debea1b9f
parentAdded support for RFC 104, the logging interface: https://docs.google.com/doc... (diff)
downloadwaveworks_archive-9d4bad02e6eb15ec5cf62681923543776d66e9f1.tar.xz
waveworks_archive-9d4bad02e6eb15ec5cf62681923543776d66e9f1.zip
Renamed Logger.h to GFSDK_Logger.h since it's a shared header.
Removed the narrow char methods. Removed the floating log functions. Changed the ILogger::log() method to use varargs and printf() formatting.
-rw-r--r--CMakeLists.txt4
-rw-r--r--common/LoggerImpl.cpp32
-rw-r--r--common/LoggerImpl.h56
-rw-r--r--compiler/cmake/ServerApp.cmake142
-rw-r--r--compiler/cmake/sample_d3d11.cmake2
-rw-r--r--compiler/cmake/test_d3d11.cmake2
-rw-r--r--include/GFSDK_Logger.h (renamed from common/Logger.h)4
-rw-r--r--sample/d3d11/ocean_surface.cpp4
-rw-r--r--sample/d3d11/sample_d3d11.cpp8
-rw-r--r--src/Entrypoints.cpp1
-rw-r--r--src/InternalLogger.cpp26
-rw-r--r--src/InternalLogger.h74
12 files changed, 211 insertions, 144 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71f4bce..07a7be5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,4 +128,6 @@ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${FINAL_OUTPUT_DIR})
INCLUDE(compiler/cmake/NvWaveWorks.cmake)
INCLUDE(compiler/cmake/test_d3d11.cmake)
INCLUDE(compiler/cmake/sample_d3d11.cmake)
-INCLUDE(compiler/cmake/sample_opengl.cmake)
+
+# TODO: Switch between CUDA/DirectCompute
+#INCLUDE(compiler/cmake/sample_opengl.cmake)
diff --git a/common/LoggerImpl.cpp b/common/LoggerImpl.cpp
index 9a2921d..9fa81bd 100644
--- a/common/LoggerImpl.cpp
+++ b/common/LoggerImpl.cpp
@@ -3,10 +3,8 @@
#include <sstream>
#include <windows.h>
-LoggerWWSamples* g_Logger = nullptr;
-
LoggerWWSamples::LoggerWWSamples():
-LoggingLevel(nv::LogSeverity::kInfo)
+ LoggingLevel(nv::LogSeverity::kInfo)
{
}
@@ -27,20 +25,28 @@ void LoggerWWSamples::setLoggingLevel(nv::LogSeverity newLevel)
LoggingLevel = newLevel;
}
-void LoggerWWSamples::log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber)
+void LoggerWWSamples::log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* format, ...)
{
- std::ostringstream out;
-
- out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int) severity] << "] " << text << std::endl;
+ if (getLoggingLevel() > severity)
+ return;
+
+ wchar_t buffer[1024];
+
+ va_list args;
+ va_start(args, format);
+#if NV_GCC_FAMILY
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#endif
+ _vsnwprintf_s(buffer, sizeof(buffer), format, args);
+#if NV_GCC_FAMILY
+#pragma GCC diagnostic pop
+#endif
+ va_end(args);
- OutputDebugStringA(out.str().c_str());
-}
-
-void LoggerWWSamples::log(const wchar_t* text, nv::LogSeverity severity, const wchar_t* filename, int linenumber)
-{
std::wstringstream out;
- out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int)severity] << "] " << text << std::endl;
+ out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int)severity] << "] " << buffer << std::endl;
OutputDebugStringW(out.str().c_str());
}
diff --git a/common/LoggerImpl.h b/common/LoggerImpl.h
index a07cead..35ac37a 100644
--- a/common/LoggerImpl.h
+++ b/common/LoggerImpl.h
@@ -1,5 +1,5 @@
#pragma once
-#include "Logger.h"
+#include "GFSDK_Logger.h"
#include <cstdarg>
#include <cstdio>
@@ -10,58 +10,34 @@ public:
LoggerWWSamples(nv::LogSeverity loggingLevel);
virtual ~LoggerWWSamples() = default;
- virtual void log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber) override;
- virtual void log(const wchar_t* text, nv::LogSeverity severity, const wchar_t* filename, int linenumber) override;
+// virtual void log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber) override;
+ virtual void log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* format, ...) override;
nv::LogSeverity getLoggingLevel();
void setLoggingLevel(nv::LogSeverity newLevel);
+ static LoggerWWSamples* GetInstance()
+ {
+ static LoggerWWSamples Instance;
+ return &Instance;
+ }
private:
nv::LogSeverity LoggingLevel;
};
-extern LoggerWWSamples* g_Logger;
-
-namespace wwsamples
-{
- inline void log(nv::LogSeverity severity, const char* filename, int linenumber, const char* format, ...)
- {
- if (g_Logger == nullptr)
- {
- g_Logger = new LoggerWWSamples();
- }
-
- if (g_Logger->getLoggingLevel() > severity)
- return;
-
- char buffer[1024];
-
- va_list args;
- va_start(args, format);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-#endif
- vsnprintf_s(buffer, sizeof(buffer), format, args);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic pop
-#endif
- va_end(args);
-
- g_Logger->log(buffer, severity, filename, linenumber);
- }
-}
-
+#ifndef NV_LOG
+// NOTE: This assumes we're using wide strings!
+#define WIDEWRAP2(s) L##s
+#define WIDEWRAP1(s) WIDEWRAP2(s)
-#ifndef NV_LOG
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_LOG(...) wwsamples::log(nv::LogSeverity::kInfo, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_LOG(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kInfo, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_WARN(...) wwsamples::log(nv::LogSeverity::kWarning, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_WARN(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kWarning, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_ERROR(...) wwsamples::log(nv::LogSeverity::kError, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_ERROR(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kError, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_FATAL(...) wwsamples::log(nv::LogSeverity::kFatal, __FILE__, __LINE__, __VA_ARGS__)
+#define NV_FATAL(...) LoggerWWSamples::GetInstance()->log(nv::LogSeverity::kFatal, WIDEWRAP1(__FILE__), __LINE__, __VA_ARGS__)
#endif \ No newline at end of file
diff --git a/compiler/cmake/ServerApp.cmake b/compiler/cmake/ServerApp.cmake
new file mode 100644
index 0000000..175593a
--- /dev/null
+++ b/compiler/cmake/ServerApp.cmake
@@ -0,0 +1,142 @@
+#
+# Build serverapp
+#
+
+SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
+
+SET(TEST_SOURCE_DIR ${PROJECT_SOURCE_DIR}/test/serverapp)
+SET(LIB_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+SET(SHARED_CS_DIR ${PROJECT_SOURCE_DIR}/test/client-server)
+SET(TL_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ SET(WW_PLATFORM_INCLUDES
+ )
+
+ SET(WW_PLATFORM_SRC_FILES
+ )
+
+
+ # Use generator expressions to set config specific preprocessor definitions
+ SET(WW_COMPILE_DEFS
+ # Common to all configurations
+ WIN32;_WINDOWS;_CONSOLE;
+
+ $<$<CONFIG:debug>:PROFILE;>
+ $<$<CONFIG:release>:NDEBUG;>
+ )
+
+ SET(WW_LIBTYPE SHARED)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+
+ SET(WW_PLATFORM_INCLUDES
+ $ENV{SCE_ORBIS_SDK_DIR}/target/include
+ )
+
+ SET(WW_COMPILE_DEFS
+
+ # Common to all configurations
+ _LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PX_PHYSX_STATIC_LIB;
+
+ $<$<CONFIG:debug>:_DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_SUPPORT_PVD=1;>
+ $<$<CONFIG:release>:NDEBUG;PX_SUPPORT_PVD=0;>
+ )
+
+ SET(WW_LIBTYPE STATIC)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "XBoxOne")
+ SET(WW_PLATFORM_INCLUDES
+ )
+
+ # Use generator expressions to set config specific preprocessor definitions
+ SET(WW_COMPILE_DEFS
+
+ # Common to all configurations
+ PX_PHYSX_CORE_EXPORTS;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WINAPI_FAMILY=WINAPI_FAMILY_TV_TITLE;PX_PHYSX_STATIC_LIB;
+
+ $<$<CONFIG:debug>:_DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_SUPPORT_PVD=1;>
+ $<$<CONFIG:release>:NDEBUG;PX_SUPPORT_PVD=0;>
+ )
+
+ SET(WW_LIBTYPE STATIC)
+
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "Unix")
+ENDIF()
+
+SET(APP_FILES
+ ${TEST_SOURCE_DIR}/serverapp.cpp
+
+ ${TL_INCLUDE_DIR}/GFSDK_Logger.h
+ ${COMMON_SOURCE_DIR}/LoggerImpl.h
+ ${COMMON_SOURCE_DIR}/LoggerImpl.cpp
+)
+
+SET(SHARED_CS_FILES
+ ${SHARED_CS_DIR}/message_types.h
+ ${SHARED_CS_DIR}/socket_wrapper.h
+ ${SHARED_CS_DIR}/socket_wrapper.cpp
+)
+
+ADD_EXECUTABLE(ServerApp WIN32
+ ${WW_PLATFORM_SRC_FILES}
+
+ ${APP_FILES}
+ ${SHARED_CS_FILES}
+
+)
+
+SOURCE_GROUP("app" FILES ${APP_FILES})
+SOURCE_GROUP("shared-client-server-code" FILES ${SHARED_CS_FILES})
+
+
+# Target specific compile options
+
+
+TARGET_INCLUDE_DIRECTORIES(ServerApp
+ PRIVATE ${WW_PLATFORM_INCLUDES}
+
+ PRIVATE ${TL_INCLUDE_DIR}
+ PRIVATE ${SHARED_CS_DIR}
+ PRIVATE ${LIB_SOURCE_DIR}
+)
+
+TARGET_COMPILE_DEFINITIONS(ServerApp
+
+ # Common to all configurations
+ PRIVATE ${WW_COMPILE_DEFS}
+)
+
+
+
+#TODO: Link flags
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # Add linked libraries
+ TARGET_LINK_LIBRARIES(ServerApp PUBLIC WaveWorks Ws2_32.lib comctl32.lib ${CUDA_LIBRARIES})
+
+ IF(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "win64")
+ ELSE(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "Win32")
+ ENDIF(CMAKE_CL_64)
+
+ SET_TARGET_PROPERTIES(ServerApp PROPERTIES
+ LINK_FLAGS_DEBUG "/MAP /DEBUG"
+ LINK_FLAGS_RELEASE "/MAP /INCREMENTAL:NO"
+ )
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+# TARGET_LINK_LIBRARIES(ServerApp PUBLIC LowLevel LowLevelAABB LowLevelCloth LowLevelDynamics LowLevelParticles ServerAppCommon PxFoundation PxPvdSDK PxTask SceneQuery SimulationController)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "XBoxOne")
+
+# TARGET_LINK_LIBRARIES(ServerApp PUBLIC LowLevel LowLevelAABB LowLevelCloth LowLevelDynamics LowLevelParticles ServerAppCommon PxFoundation PxPvdSDK PxTask SceneQuery SimulationController)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "Unix")
+ENDIF()
+
+
diff --git a/compiler/cmake/sample_d3d11.cmake b/compiler/cmake/sample_d3d11.cmake
index 2d8ddc7..dac6b24 100644
--- a/compiler/cmake/sample_d3d11.cmake
+++ b/compiler/cmake/sample_d3d11.cmake
@@ -84,7 +84,7 @@ SET(APP_FILES
${SAMP_SOURCE_DIR}/terrain.cpp
${SAMP_SOURCE_DIR}/terrain.h
- ${COMMON_SOURCE_DIR}/Logger.h
+ ${TL_INCLUDE_DIR}/GFSDK_Logger.h
${COMMON_SOURCE_DIR}/LoggerImpl.h
${COMMON_SOURCE_DIR}/LoggerImpl.cpp
diff --git a/compiler/cmake/test_d3d11.cmake b/compiler/cmake/test_d3d11.cmake
index 68e5e5e..bbc7ca7 100644
--- a/compiler/cmake/test_d3d11.cmake
+++ b/compiler/cmake/test_d3d11.cmake
@@ -79,7 +79,7 @@ SET(APP_FILES
${TEST_SOURCE_DIR}/ocean_surface.cpp
${TEST_SOURCE_DIR}/ocean_surface.h
- ${COMMON_SOURCE_DIR}/Logger.h
+ ${TL_INCLUDE_DIR}/GFSDK_Logger.h
${COMMON_SOURCE_DIR}/LoggerImpl.h
${COMMON_SOURCE_DIR}/LoggerImpl.cpp
)
diff --git a/common/Logger.h b/include/GFSDK_Logger.h
index 324b71e..5ad6d77 100644
--- a/common/Logger.h
+++ b/include/GFSDK_Logger.h
@@ -18,8 +18,8 @@ namespace nv
{
public:
// �filename� is NULL and �linenumber� is 0 in release builds of GameWorks
- virtual void log(const char* text, LogSeverity severity, const char* filename, int linenumber) = 0;
- virtual void log(const wchar_t* text, LogSeverity severity, const wchar_t* filename, int linenumber) = 0;
+// virtual void log(LogSeverity severity, const char* filename, int linenumber, const char* text, ...) = 0;
+ virtual void log(LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* text, ...) = 0;
};
}
diff --git a/sample/d3d11/ocean_surface.cpp b/sample/d3d11/ocean_surface.cpp
index 3bf11c8..a880db3 100644
--- a/sample/d3d11/ocean_surface.cpp
+++ b/sample/d3d11/ocean_surface.cpp
@@ -31,7 +31,7 @@
#include "ocean_surface.h"
#include "GFSDK_WaveWorks_D3D_Util.h"
-#include "../common/Logger.h"
+#include "GFSDK_Logger.h"
#include "../common/LoggerImpl.h"
#pragma warning(disable:4127)
@@ -73,7 +73,7 @@ OceanSurface::~OceanSurface()
HRESULT OceanSurface::initQuadTree(const GFSDK_WaveWorks_Quadtree_Params& params)
{
- NV_LOG("Initing the QuadTree");
+ NV_LOG(L"Initing the QuadTree");
if(NULL == m_hOceanQuadTree)
{
diff --git a/sample/d3d11/sample_d3d11.cpp b/sample/d3d11/sample_d3d11.cpp
index 929ba11..6383777 100644
--- a/sample/d3d11/sample_d3d11.cpp
+++ b/sample/d3d11/sample_d3d11.cpp
@@ -46,7 +46,7 @@
#include <locale>
#include <codecvt>
#include <xlocbuf>
-#include "../common/Logger.h"
+#include "GFSDK_Logger.h"
#include "../common/LoggerImpl.h"
//#define DEBUG_VS // Uncomment this line to debug vertex shaders
@@ -209,11 +209,11 @@ INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR cmdline, int )
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif
- NV_LOG("Testing!");
+ NV_LOG(L"Testing!");
- GFSDK_WaveWorks_SetUserLogger(static_cast<nv::ILogger*>(g_Logger));
+ GFSDK_WaveWorks_SetUserLogger(static_cast<nv::ILogger*>(LoggerWWSamples::GetInstance()));
- NV_LOG("User logger set!");
+ NV_LOG(L"User logger set!");
//TODO: Take from cmdline
auto mediaPath = "..\\..\\media\\sample";
diff --git a/src/Entrypoints.cpp b/src/Entrypoints.cpp
index 953decf..2dd0c15 100644
--- a/src/Entrypoints.cpp
+++ b/src/Entrypoints.cpp
@@ -48,7 +48,6 @@
#include "orbis\GNM_Util.h"
#endif
#include "InternalLogger.h"
-#include "Logger.h"
// Misc helper macros which can be used to bracket entrypoints to:
// - catch any and all exceptions, to keep them out of the app
diff --git a/src/InternalLogger.cpp b/src/InternalLogger.cpp
index e8e8898..de1f750 100644
--- a/src/InternalLogger.cpp
+++ b/src/InternalLogger.cpp
@@ -27,26 +27,28 @@ void InternalLogger::setLoggingLevel(nv::LogSeverity newLevel)
LoggingLevel = newLevel;
}
-void InternalLogger::log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber)
+void InternalLogger::log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* format, ...)
{
if (getLoggingLevel() > severity)
return;
- std::ostringstream out;
+ wchar_t buffer[1024];
- out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int)severity] << "] " << text << std::endl;
-
- OutputDebugStringA(out.str().c_str());
-}
-
-void InternalLogger::log(const wchar_t* text, nv::LogSeverity severity, const wchar_t* filename, int linenumber)
-{
- if (getLoggingLevel() > severity)
- return;
+ va_list args;
+ va_start(args, format);
+#if NV_GCC_FAMILY
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#endif
+ _vsnwprintf_s(buffer, sizeof(buffer), format, args);
+#if NV_GCC_FAMILY
+#pragma GCC diagnostic pop
+#endif
+ va_end(args);
std::wstringstream out;
- out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int)severity] << "] " << text << std::endl;
+ out << filename << "(" << linenumber << "): " << "[" << nv::LogSeverityStrings[(int)severity] << "] " << buffer << std::endl;
OutputDebugStringW(out.str().c_str());
}
diff --git a/src/InternalLogger.h b/src/InternalLogger.h
index d10f263..334519c 100644
--- a/src/InternalLogger.h
+++ b/src/InternalLogger.h
@@ -1,6 +1,6 @@
#pragma once
-#include "Logger.h"
+#include "GFSDK_Logger.h"
#include <cstdarg>
#include <cstdio>
#include <wtypes.h>
@@ -15,8 +15,8 @@ public:
InternalLogger(nv::LogSeverity loggingLevel);
virtual ~InternalLogger() = default;
- virtual void log(const char* text, nv::LogSeverity severity, const char* filename, int linenumber) override;
- virtual void log(const wchar_t* text, nv::LogSeverity severity, const wchar_t* filename, int linenumber) override;
+// virtual void log(nv::LogSeverity severity, const char* filename, int linenumber, const char* text, ...) override;
+ virtual void log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* text, ...) override;
nv::LogSeverity getLoggingLevel();
void setLoggingLevel(nv::LogSeverity newLevel);
@@ -34,75 +34,15 @@ private:
extern nv::ILogger* g_UserLogger;
-namespace WaveworksInternal
-{
- inline void log(nv::LogSeverity severity, const wchar_t* filename, int linenumber, const wchar_t* format, ...)
- {
- wchar_t buffer[1024];
-
- va_list args;
- va_start(args, format);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-#endif
- _vsnwprintf_s(buffer, sizeof(buffer), format, args);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic pop
-#endif
- va_end(args);
-
-
- // Only output to one logger at a time. May not be the desired behaviour.
- if (g_UserLogger)
- {
- g_UserLogger->log(buffer, severity, filename, linenumber);
- }
- else
- {
- InternalLogger::GetInstance()->log(buffer, severity, filename, linenumber);
- }
-
- }
-
- inline void log(nv::LogSeverity severity, const char* filename, int linenumber, const char* format, ...)
- {
- char buffer[1024];
-
- va_list args;
- va_start(args, format);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-#endif
- vsnprintf_s(buffer, sizeof(buffer), format, args);
-#if NV_GCC_FAMILY
-#pragma GCC diagnostic pop
-#endif
- va_end(args);
-
- // Only output to one logger at a time. May not be the desired behaviour.
- if (g_UserLogger)
- {
- g_UserLogger->log(buffer, severity, filename, linenumber);
- }
- else
- {
- InternalLogger::GetInstance()->log(buffer, severity, filename, linenumber);
- }
- }
-}
-
-
#ifndef NV_LOG
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_LOG(...) WaveworksInternal::log(nv::LogSeverity::kInfo, __DEF_FILE__, __LINE__, __VA_ARGS__)
+#define NV_LOG(...) if (g_UserLogger) { g_UserLogger->log(nv::LogSeverity::kInfo, __DEF_FILE__, __LINE__, __VA_ARGS__); } else { InternalLogger::GetInstance()->log(nv::LogSeverity::kInfo, __DEF_FILE__, __LINE__, __VA_ARGS__); }
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_WARN(...) WaveworksInternal::log(nv::LogSeverity::kWarning, __DEF_FILE__, __LINE__, __VA_ARGS__)
+#define NV_WARN(...) if (g_UserLogger) { g_UserLogger->log(nv::LogSeverity::kWarning, __DEF_FILE__, __LINE__, __VA_ARGS__); } else { InternalLogger::GetInstance()->log(nv::LogSeverity::kWarning, __DEF_FILE__, __LINE__, __VA_ARGS__); }
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_ERROR(...) WaveworksInternal::log(nv::LogSeverity::kError, __DEF_FILE__, __LINE__, __VA_ARGS__)
+#define NV_ERROR(...) if (g_UserLogger) { g_UserLogger->log(nv::LogSeverity::kError, __DEF_FILE__, __LINE__, __VA_ARGS__); } else { InternalLogger::GetInstance()->log(nv::LogSeverity::kError, __DEF_FILE__, __LINE__, __VA_ARGS__); }
/// <param name="__VA_ARGS__">format, ...</param>
-#define NV_FATAL(...) WaveworksInternal::log(nv::LogSeverity::kFatal, __DEF_FILE__, __LINE__, __VA_ARGS__)
+#define NV_FATAL(...) if (g_UserLogger) { g_UserLogger->log(nv::LogSeverity::kFatal, __DEF_FILE__, __LINE__, __VA_ARGS__); } else { InternalLogger::GetInstance()->log(nv::LogSeverity::kFatal, __DEF_FILE__, __LINE__, __VA_ARGS__); }
#endif \ No newline at end of file