Only do spatial logging when spatial log is observed

This commit is contained in:
Kae 2023-08-31 04:55:36 +10:00
parent 182d3052c5
commit 51d6e63dfe
3 changed files with 26 additions and 0 deletions

View File

@ -120,6 +120,8 @@ size_t const SpatialLogger::MaximumPoints;
size_t const SpatialLogger::MaximumText; size_t const SpatialLogger::MaximumText;
void SpatialLogger::logPoly(char const* space, PolyF const& poly, Vec4B const& color) { void SpatialLogger::logPoly(char const* space, PolyF const& poly, Vec4B const& color) {
if (!observed()) return;
MutexLocker locker(s_mutex); MutexLocker locker(s_mutex);
auto& lines = s_lines[space]; auto& lines = s_lines[space];
@ -133,6 +135,8 @@ void SpatialLogger::logPoly(char const* space, PolyF const& poly, Vec4B const& c
} }
void SpatialLogger::logLine(char const* space, Line2F const& line, Vec4B const& color) { void SpatialLogger::logLine(char const* space, Line2F const& line, Vec4B const& color) {
if (!observed()) return;
MutexLocker locker(s_mutex); MutexLocker locker(s_mutex);
auto& lines = s_lines[space]; auto& lines = s_lines[space];
@ -143,6 +147,8 @@ void SpatialLogger::logLine(char const* space, Line2F const& line, Vec4B const&
} }
void SpatialLogger::logLine(char const* space, Vec2F const& begin, Vec2F const& end, Vec4B const& color) { void SpatialLogger::logLine(char const* space, Vec2F const& begin, Vec2F const& end, Vec4B const& color) {
if (!observed()) return;
MutexLocker locker(s_mutex); MutexLocker locker(s_mutex);
auto& lines = s_lines[space]; auto& lines = s_lines[space];
@ -153,6 +159,8 @@ void SpatialLogger::logLine(char const* space, Vec2F const& begin, Vec2F const&
} }
void SpatialLogger::logPoint(char const* space, Vec2F const& position, Vec4B const& color) { void SpatialLogger::logPoint(char const* space, Vec2F const& position, Vec4B const& color) {
if (!observed()) return;
MutexLocker locker(s_mutex); MutexLocker locker(s_mutex);
auto& points = s_points[space]; auto& points = s_points[space];
@ -163,6 +171,8 @@ void SpatialLogger::logPoint(char const* space, Vec2F const& position, Vec4B con
} }
void SpatialLogger::logText(char const* space, String text, Vec2F const& position, Vec4B const& color) { void SpatialLogger::logText(char const* space, String text, Vec2F const& position, Vec4B const& color) {
if (!observed()) return;
MutexLocker locker(s_mutex); MutexLocker locker(s_mutex);
auto& texts = s_logText[space]; auto& texts = s_logText[space];
@ -208,8 +218,18 @@ void SpatialLogger::clear() {
} // Move while locked to deallocate contents while unlocked. } // Move while locked to deallocate contents while unlocked.
} }
bool SpatialLogger::observed() {
return s_observed;
}
void SpatialLogger::setObserved(bool observed) {
s_observed = observed;
}
Mutex SpatialLogger::s_mutex; Mutex SpatialLogger::s_mutex;
StringMap<Deque<SpatialLogger::Line>> SpatialLogger::s_lines; StringMap<Deque<SpatialLogger::Line>> SpatialLogger::s_lines;
StringMap<Deque<SpatialLogger::Point>> SpatialLogger::s_points; StringMap<Deque<SpatialLogger::Point>> SpatialLogger::s_points;
StringMap<Deque<SpatialLogger::LogText>> SpatialLogger::s_logText; StringMap<Deque<SpatialLogger::LogText>> SpatialLogger::s_logText;
bool SpatialLogger::s_observed = false;
} }

View File

@ -147,11 +147,15 @@ public:
static void clear(); static void clear();
static bool observed();
static void setObserved(bool observed);
private: private:
static Mutex s_mutex; static Mutex s_mutex;
static StringMap<Deque<Line>> s_lines; static StringMap<Deque<Line>> s_lines;
static StringMap<Deque<Point>> s_points; static StringMap<Deque<Point>> s_points;
static StringMap<Deque<LogText>> s_logText; static StringMap<Deque<LogText>> s_logText;
static bool s_observed;
}; };
template <typename... Args> template <typename... Args>

View File

@ -1329,8 +1329,10 @@ void MainInterface::renderDebug() {
SpatialLogger::clear(); SpatialLogger::clear();
m_debugTextRect = RectF::null(); m_debugTextRect = RectF::null();
LogMap::clear(); LogMap::clear();
SpatialLogger::setObserved(false);
return; return;
} }
SpatialLogger::setObserved(true);
if (m_clientCommandProcessor->debugHudEnabled()) { if (m_clientCommandProcessor->debugHudEnabled()) {
auto assets = Root::singleton().assets(); auto assets = Root::singleton().assets();