diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 99c5b8c38..7954b6e8d 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -76,6 +76,7 @@ include_directories( ) set(viewer_SOURCE_FILES + sgmemstat.cpp sgversion.cpp llviewerobjectbackup.cpp slfloatermediafilter.cpp @@ -564,6 +565,7 @@ set(viewer_HEADER_FILES CMakeLists.txt ViewerInstall.cmake + sgmemstat.h sgversion.h llviewerobjectbackup.h slfloatermediafilter.h diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 2b521fed4..ecd22b0ae 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4205,6 +4205,17 @@ Value -1 + DebugStatModeMalloc + + Comment + Mode of stat in Statistics floater + Persist + 1 + Type + S32 + Value + -1 + DebugStatModeFormattedMem Comment diff --git a/indra/newview/llfloaterstats.cpp b/indra/newview/llfloaterstats.cpp index 4d8fd7099..84c637f2c 100644 --- a/indra/newview/llfloaterstats.cpp +++ b/indra/newview/llfloaterstats.cpp @@ -45,6 +45,7 @@ #include "pipeline.h" #include "llviewerobjectlist.h" #include "llviewertexturelist.h" +#include "sgmemstat.h" const S32 LL_SCROLL_BORDER = 1; @@ -99,7 +100,17 @@ void LLFloaterStats::buildStats() stat_barp->mLabelSpacing = 200.f; stat_barp->mPerSec = FALSE; stat_barp->mDisplayMean = FALSE; - + + if(SGMemStat::haveStat()) { + stat_barp = stat_viewp->addStat("Allocated memory", &(LLViewerStats::getInstance()->mMallocStat), "DebugStatModeMalloc"); + stat_barp->setUnitLabel(" MB"); + stat_barp->mMinBar = 0.f; + stat_barp->mMaxBar = 4000.f; + stat_barp->mTickSpacing = 100.f; + stat_barp->mLabelSpacing = 200.f; + stat_barp->mPerSec = FALSE; + stat_barp->mDisplayMean = FALSE; + } stat_viewp = new LLStatView("advanced stat view", "Advanced", "OpenDebugStatAdvanced", rect); addStatView(stat_viewp); diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 11cb1a868..baf728781 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -213,6 +213,7 @@ LLViewerStats::LLViewerStats() : mObjectKBitStat("objectkbitstat"), mAssetKBitStat("assetkbitstat"), mTextureKBitStat("texturekbitstat"), + mMallocStat("mallocstat"), mVFSPendingOperations("vfspendingoperations"), mObjectsDrawnStat("objectsdrawnstat"), mObjectsCulledStat("objectsculledstat"), diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h index 7f0f2d8cf..ec91b7efd 100644 --- a/indra/newview/llviewerstats.h +++ b/indra/newview/llviewerstats.h @@ -59,6 +59,7 @@ public: LLStat mActualInKBitStat; // From the packet ring (when faking a bad connection) LLStat mActualOutKBitStat; // From the packet ring (when faking a bad connection) LLStat mTrianglesDrawnStat; + LLStat mMallocStat; // Simulator stats LLStat mSimTimeDilation; diff --git a/indra/newview/sgmemstat.cpp b/indra/newview/sgmemstat.cpp new file mode 100644 index 000000000..27f3cc7cb --- /dev/null +++ b/indra/newview/sgmemstat.cpp @@ -0,0 +1,31 @@ +/* Copyright (C) 2012 Siana Gearz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA */ + +#include "llviewerprecompiledheaders.h" +#include "sgmemstat.h" + +bool SGMemStat::haveStat() { + return false; +} + +F32 SGMemStat::getMalloc() { + return 0.f; +} + +U32 SGMemStat::getNumObjects() { + return 0; +} diff --git a/indra/newview/sgmemstat.h b/indra/newview/sgmemstat.h new file mode 100644 index 000000000..8a89e3b0d --- /dev/null +++ b/indra/newview/sgmemstat.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2012 Siana Gearz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA */ + +#ifndef SGMEMSTAT_H +#define SGMEMSTAT_H + +namespace SGMemStat{ + +bool haveStat(); + +F32 getMalloc(); + +U32 getNumObjects(); + +} + +#endif