From 92673caebdc903e7cec776c84fa9af0f37d75c2f Mon Sep 17 00:00:00 2001 From: Amos Date: Fri, 6 Aug 2021 14:43:52 -0700 Subject: [PATCH] Optimize sqvm and net logger --- r5dev/src/hooks/net.cpp | 7 +++++-- r5dev/src/hooks/sqvm.cpp | 8 ++++++-- r5dev/src/id3dx.cpp | 8 +------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/r5dev/src/hooks/net.cpp b/r5dev/src/hooks/net.cpp index d6d6c98b..28fb643a 100644 --- a/r5dev/src/hooks/net.cpp +++ b/r5dev/src/hooks/net.cpp @@ -8,6 +8,9 @@ namespace Hooks NET_SendDatagramFn originalNET_SendDatagram = nullptr; } +static std::ostringstream oss; +static auto ostream_sink = std::make_shared(oss); + //----------------------------------------------------------------------------- // Purpose: log the clients signonstate to the console //----------------------------------------------------------------------------- @@ -18,8 +21,8 @@ void Hooks::NET_PrintFunc(const char* fmt, ...) static auto iconsole = spdlog::stdout_logger_mt("net_iconsole"); // in-game console static auto wconsole = spdlog::stdout_logger_mt("net_wconsole"); // windows console - std::ostringstream oss; - auto ostream_sink = std::make_shared(oss); + oss.str(""); + oss.clear(); iconsole = std::make_shared("ostream", ostream_sink); iconsole->set_pattern("[%S.%e] %v"); diff --git a/r5dev/src/hooks/sqvm.cpp b/r5dev/src/hooks/sqvm.cpp index 8eecd5f6..bf18ba72 100644 --- a/r5dev/src/hooks/sqvm.cpp +++ b/r5dev/src/hooks/sqvm.cpp @@ -7,6 +7,9 @@ namespace Hooks SQVM_LoadScriptFn originalSQVM_LoadScript = nullptr; } +static std::ostringstream oss; +static auto ostream_sink = std::make_shared(oss); + //--------------------------------------------------------------------------------- // Purpose: prints the output of each VM to the console //--------------------------------------------------------------------------------- @@ -21,8 +24,9 @@ void* Hooks::SQVM_Print(void* sqvm, char* fmt, ...) static auto wconsole = spdlog::stdout_logger_mt("sqvm_wconsole"); // windows console std::string vmStr = vmType[vmIdx].c_str(); - std::ostringstream oss; - auto ostream_sink = std::make_shared(oss); + + oss.str(""); + oss.clear(); iconsole = std::make_shared("ostream", ostream_sink); iconsole->set_pattern("[%S.%e] %v"); diff --git a/r5dev/src/id3dx.cpp b/r5dev/src/id3dx.cpp index 5e39f3a3..2556bb3b 100644 --- a/r5dev/src/id3dx.cpp +++ b/r5dev/src/id3dx.cpp @@ -550,10 +550,4 @@ void SetupDXSwapChain() { CloseHandle(hThread); } -} - - - -//################################################################################# -// UTILS -//################################################################################# \ No newline at end of file +} \ No newline at end of file