summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerwindow.cpp
AgeCommit message (Collapse)Author
2019-03-01Merged in lindenlab/viewer-bearAndreyL ProductEngine
2019-02-25SL-10326 Restore ability to select own avatar and move it via manipulation ↵maxim_productengine
arrows
2018-11-14Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2018-10-11Modify logging so that the in-viewer console and stderr do not escape line ↵Oz Linden
breaks Improve the implementation so that escaping is computed only once
2018-09-27mergeBrad Payne (Vir Linden)
2018-08-02mergeBrad Payne (Vir Linden)
2018-07-16MAINT-8844 Fixed selection inconsistancies (inworld manipulation vs tool ↵andreykproductengine
floater)
2018-06-21mergeBrad Payne (Vir Linden)
2018-06-20MAINT-8764 FIXED Crash in LLViewerWindow::saveImageNumbered()maxim_productengine
2018-06-01MAINT-8712 Crash on close in LLWindowWin32Andrey Kleshchev
2018-06-12MAINT-8727 FIXED Saving snapshot will cause disconnect if you do not choose ↵maxim_productengine
path in File picker quickly
2018-05-03MAINT-1421 FIXED "Show Memory" doesn't display memory stats on macmaxim_productengine
2018-05-18mergeBrad Payne (Vir Linden)
2018-04-25MAINT-8549 - more on animesh ARC and associated refactoringBrad Payne (Vir Linden)
2018-03-02mergeBrad Payne (Vir Linden)
2018-02-15Fix batch display in avatar render info (%d is not for doubles).Graham Linden graham@lindenlab.com
2018-02-15Add debug setting and code to allow nVidia nSight graphics debugging to ↵Graham Linden graham@lindenlab.com
capture SL frames. These changes are only enabled if RenderNsightDebugSupport is true and eliminate use of some OpenGL legacy functionality which is incompatible with nSight capture (mostly glReadPixels and other fixed-function pipe rendering calls).
2018-01-30MAINT-8091 Removed deprecated and unused private memory poolingAndrey Kleshchev
2018-01-17MAINT-8183 Additional loggingandreykproductengine
2018-01-17mergeBrad Payne (Vir Linden)
2018-01-17MAINT-8183 Additional loggingandreykproductengine
2018-01-17Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2017-12-19SL-713, MAINT-7709 - experimental setting to allow left-click interaction ↵Brad Payne (Vir Linden)
with animesh. Disabled by default. Still doesn't work in all cases and has significant performance impact
2017-12-12MAINT-8071 Handle initialization crash betterandreykproductengine
2017-12-05Merged in lindenlab/viewer-bearAndreyL ProductEngine
2017-12-05revert change for MAINT-8017Mnikolenko Productengine
2017-12-01MAINT-8036 Fixed Viewer freezing when overwriting existing snpshot with new one.andreykproductengine
2017-11-29DRTVWR-418: Merge from latest viewer-releaseNat Goodspeed
2017-11-24MAINT-8017 Avatar walks in half-bent position , without disabling "away" statusMnikolenko Productengine
2017-10-11Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-08-16merge changes for DRTVWR-439Oz Linden
2017-08-30MAINT-7757 FIXED [MAC] Crash in LLViewerWindow::saveImageNumberedMnikolenko Productengine
2017-06-09MAINT-7477 FIXED [viewer-neko] Viewer crashes when saving snapshot to disk ↵Mnikolenko Productengine
and closing file picker window
2017-05-24MAINT-4375 Viewer saves an empty snapshots if disk is fulldaianakproductengine
2017-05-02DRTVWR-418, MAINT-6996: Rationalize LLMemory wrt 64-bit support.Nat Goodspeed
There were two distinct LLMemory methods getCurrentRSS() and getWorkingSetSize(). It was pointless to have both: on Windows they were completely redundant; on other platforms getWorkingSetSize() always returned 0. (Amusingly, though the Windows implementations both made exactly the same GetProcessMemoryInfo() call and used exactly the same logic, the code was different in the two -- as though the second was implemented without awareness of the first, even though they were adjacent in the source file.) One of the actual MAINT-6996 problems was due to the fact that getWorkingSetSize() returned U32, where getCurrentRSS() returns U64. In other words, getWorkingSetSize() was both useless *and* wrong. Remove it, and change its one call to getCurrentRSS() instead. The other culprit was that in several places, the 64-bit WorkingSetSize returned by the Windows GetProcessMemoryInfo() call (and by getCurrentRSS()) was explicitly cast to a 32-bit data type. That works only when explicitly or implicitly (using LLUnits type conversion) scaling the value to kilobytes or megabytes. When the size in bytes is desired, use 64-bit types instead. In addition to the symptoms, LLMemory was overdue for a bit of cleanup. There was a 16K block of memory called reserveMem, the comment on which read: "reserve 16K for out of memory error handling." Yet *nothing* was ever done with that block! If it were going to be useful, one would think someone would at some point explicitly free the block. In fact there was a method freeReserve(), apparently for just that purpose -- which was never called. As things stood, reserveMem served only to *prevent* the viewer from ever using that chunk of memory. Remove reserveMem and the unused freeReserve(). The only function of initClass() and cleanupClass() was to allocate and free reserveMem. Remove initClass(), cleanupClass() and the LLCommon calls to them. In a similar vein, there was an LLMemoryInfo::getPhysicalMemoryClamped() method that returned U32Bytes. Its job was simply to return a size in bytes that could fit into a U32 data type, returning U32_MAX if the 64-bit value exceeded 4GB. Eliminate that; change all its calls to getPhysicalMemoryKB() (which getPhysicalMemoryClamped() used internally anyway). We no longer care about any platform that cannot handle 64-bit data types.
2017-04-21Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-09-26MAINT-1208 Fixed 'Save as' screenshot dialog doesn't allow to save ↵daianakproductengine
screenshot without automatically adding number to name of file
2017-03-14MAINT-1800 Menu item appears at the top of the screen during teleportingandreykproductengine
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-12-20DRTVWR-418: Rationalize LLPipeline API.Nat Goodspeed
Someone evidently figured every static LLPipeline method should have at least one void* parameter. There were methods requiring void* parameters that were completely ignored. More to the point, there were methods whose callers have a U32 in hand -- and which want to use a U32 -- but which bizarrely forced callers to cast to void* just so the method could cast back to U32. In a 64-bit compile, this isn't merely pointless, it's erroneous. Change all such methods to accept U32; remove (void*) casts from call sites. While at it, fix LLPipeline API to use bool, true, false rather than their obsolete all-caps predecessors. Once you eat that first potato chip... :-P
2016-11-25Fix UI scaling changed notice showing up on startup if system UI scale ↵Ansariel
factor changed during last session
2016-11-25Don't resize viewer window if UI scaling didn't changeAnsariel
2016-11-08MAINT-6914 Increase maximum UI size value to 4.0AndreyL ProductEngine
2016-11-14Merged in lindenlab/viewer-cleanupAndreyL ProductEngine
2016-09-30MAINT-6786 scale gets out of bonds and causes crashandreykproductengine
2016-09-26MAINT-6744 'System UI size factor has changed... ' shouldn't appear after ↵AndreyL ProductEngine
installation
2016-09-16Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
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.
2016-09-15Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2016-08-30Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed