summaryrefslogtreecommitdiff
path: root/indra/newview/llscenemonitor.h
AgeCommit message (Collapse)Author
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
A shocking number of LLSingleton subclasses had public constructors -- and in several instances, were being explicitly instantiated independently of the LLSingleton machinery. This breaks the new LLSingleton dependency-tracking machinery. It seems only fair that if you say you want an LLSingleton, there should only be ONE INSTANCE! Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the friend class LLSingleton<whatevah>; and explicitly declare a private nullary constructor. To try to enforce the LLSINGLETON() convention, introduce a new pure virtual LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might suspect, defined by the macro. If you declare an LLSingleton subclass without using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro() implementation -- which will hopefully remind the coder. Trawl through ALL LLSingleton subclass definitions, sprinkling in LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit constructor declarations, public or private, along with relevant 'friend class LLSingleton<myself>' declarations. Where destructors are declared, move them into private section as well. Where the constructor was inline but nontrivial, move out of class body. Fix several LLSingleton abuses revealed by making ctors/dtors private: LLGlobalEconomy was both an LLSingleton and the base class for LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance contained another instance of the LLGlobalEconomy "singleton.") Extract LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that. LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy. LLToolGrab, an LLSingleton, was also explicitly instantiated by LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated, with trivial subclass LLToolGrab, the LLSingleton instance. (WARNING: LLToolGrabBase methods have an unnerving tendency to go after LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship between the instance in LLToolCompGun and the LLToolGrab singleton instance.) LLGridManager declared a variant constructor accepting (const std::string&), with the comment: // initialize with an explicity grid file for testing. As there is no evidence of this being called from anywhere, delete it. LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD parameter wasn't used, and as there is no evidence of it being passed from anywhere, delete the parameter. LLViewerWindow::shutdownViews() was checking LLNavigationBar:: instanceExists(), then deleting its getInstance() pointer -- leaving a dangling LLSingleton instance pointer, a land mine if any subsequent code should attempt to reference it. Use deleteSingleton() instead. ~LLAppViewer() was calling LLViewerEventRecorder::instance() and then explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the LLSingleton instance pointer pointing to an allocated-but-destroyed instance. Use deleteSingleton() instead.
2015-02-05MAINT-4857 FIXED Reset scene monitor after completing teleport.Mnikolenko ProductEngine
2014-07-23MAINT-4283 FIXED [BEAR] Viewer always crashes when opening "Scene Loading ↵andreykproductengine
Monitor" if you closed it previously with the X
2013-11-12BUILDFIX - miscellaneous stuff missed in the mergeRichard Linden
2013-08-18SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 msRichard Linden
continued conversion to units system made units perform type promotion correctly and preserve type in arithmetic e.g. can now do LLVector3 in units added typedefs for remaining common unit types, including implicits
2013-07-20removed debug spamRichard Linden
fast timer data now resets on login
2013-07-19BUILDFIX: #include and dependency cleanupRichard Linden
2013-07-15SH-4299Interesting: High fps shown temporarily off scale in statistics consoleRichard Linden
various fixes to lltrace start() on started recording no longer resets fixed various instances of unit forgetfullness in lltrace recording split now has gapless timing scene monitor now guarantees min sample time renamed a bunch of stats added names to debug thread view on windows
2013-06-19SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
scene monitor output is cleaned up, no duplicate first frame, less scientific notation periodic recording extension now works more cleanly
2013-05-31SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
fixed multithreading lltrace causing values to be interpolated towards 0 added Radians unit improved sceneloadmonitor restart heuristic to use accumulated camera motion
2013-05-22SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
clean up of llscenemonitor.cpp
2013-05-16SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
renamed LLView::handleVisibilityChange to onVisibilityChange to reflect cleaned up scene monitor stats recording, now all trace stats dumped to csv also fixed extendablerecording, periodicrecording, etc. to properly implement start/stop/etc
2013-05-13SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
added log output for scene monitoring
2013-05-10SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
renamed LLView::handleVisibilityChange to onVisibilityChange to reflect standard naming conventions for handlers vs. reactors
2013-04-23SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
convert scene monitor to use extendable periodic recording
2013-04-04fix some warnings caused by scenen loading monitoring when quit viewer.Xiaohong Bao
2013-03-25for SH-3833: dump frame diff values from the scene loading monitor to a log fileXiaohong Bao
2013-03-21SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
copied over scene load frame differencing changes from viewer-interesting made periodicrecording flexible enough to allow for indefinite number of periods added scene loading stats floater fixed collapsing behavior of container views
2012-12-19fix for SH-3640: Can not edit objectsXiaohong Bao
2012-12-02more for SH-3350, add debug textsXiaohong Bao
2012-11-30for SH-3350 and SH-3353: Report frame-to-frame visual deltas as an LLStatXiaohong Bao
2012-11-21more for SH-3571: display frame-to-frame pixel differences on screenXiaohong Bao
2012-11-19for SH-3561: capture the frame buffer contents and compare pixel differences ↵Xiaohong Bao
between frames.