summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
AgeCommit message (Collapse)Author
2016-07-19MAINT-5011: Introduce LLException base class for viewer exceptions.Nat Goodspeed
This also introduces LLContinueError for exceptions which should interrupt some part of viewer processing (e.g. the current coroutine) but should attempt to let the viewer session proceed. Derive all existing viewer exception classes from LLException rather than from std::runtime_error or std::logic_error. Use BOOST_THROW_EXCEPTION() rather than plain 'throw' to enrich the thrown exception with source file, line number and containing function.
2016-07-13MAINT-5011: Throw an actual exception in Force Software Exception.Nat Goodspeed
http://en.cppreference.com/w/cpp/language/throw says of the plain throw syntax: "This form is only allowed when an exception is presently being handled (it calls std::terminate if used otherwise)." On advice from Oz, replace plain 'throw;' with throwing a std::runtime_error.
2016-06-30DRTVWR-418: Unify control flow through LLAppViewer across platforms.Nat Goodspeed
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This makes sense -- but on Mac that structure was being subverted. The method called mainLoop() was in fact being called once per frame. There was initialization code in the method, which (on Mac) needed to be skipped with an already-initialized bool. There was a 'while' loop which (on Mac) needed to be turned into an 'if' instead so the method would return after every frame. Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer and LLCrashLogger. Document the fact that frame() returns true to mean "done." (This was always the case, but had to be inferred from the code.) Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free function it calls from runMainLoop() to pumpMainLoop(). Add comments to llappdelegate-objc.mm explaining (inferred) control flow. Change the Linux viewer main() and the Windows viewer WINMAIN() from a single LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true. Move initialization code from the top of LLAppViewer::frame() to the init() method, where it more properly belongs. Remove corresponding mMainLoopInitialized flag (and all references) from LLAppViewer. Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())') from LLAppViewer::frame() -- thus unindenting the whole body of the 'while' and causing many lines of apparent change. (Apologies to reviewers.) There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING, APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know under what circumstances the state might transition to STOPPED during a frame() call, but I'm quite sure that if it does, we don't want to call frame() again. We only want a subsequent call if the state is RUNNING. Also rename mainLoop() method in LLCrashLogger subclasses LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's completely up to the frame() method whether to yield control; none of those in fact do. Honor protocol by returning true (frame() is done), even though each one's main() caller ignores the return value. In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol correctly anyway, returning wParam or 0 or 1 -- possibly because the return protocol was never explicitly documented. It should always return true: "I'm done, don't call me again."
2016-05-06merge 4.0.4-release and MAINT-5974Oz Linden
2016-04-20MAINT-6322 fix merge error that prevented crash dumps from being located for ↵Oz Linden
upload (and add better logging)
2016-04-20MAINT-6322 fix merge error that prevented crash dumps from being located for ↵Oz Linden
upload (and add better logging)
2016-04-04merge with 4.0.3-releaseOz Linden
2016-03-17MergeRider Linden
2016-03-16merge changes for DRTVWR-417Oz Linden
2016-03-07merge DRTVWR-398 build cleanup fixesOz Linden
2016-02-07put the KDU, Fmod*, and CEF versions back in the About infoOz Linden
2016-02-04add build configuration to the About box if it is not ReleaseOz Linden
remove some superfluous other information from About
2016-01-15merge changes for 4.0.1-releaseOz Linden
2016-01-15Merge VRRider Linden
2016-01-04MAINT-489 various cache and log files not being deletedandreykproductengine
2015-12-22Merge downstream, version 4.0.1AndreyL ProductEngine
2015-12-18MergeRider Linden
2015-12-18MergeRider Linden
2015-12-15Throttle consecutive connect attempts.rider
2015-11-13MAINT-5860: remove timestamp from the about box (version id is enough)Oz Linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2015-12-18merge changes for 4.0.0-releaseOz Linden
2015-11-10Added code to initiate controlled shutdown of plugins with timeouts for ↵Rider Linden
misbeahving plugin.
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-11-06MAINT-5754: Basic keyboard functionality on the Mac. Still incompleterider
2015-10-27MAINT-3491 FIXED If ALM is enabled while in wireframe mode, disabling ↵ruslantproductengine
wireframe mode results in a black screen.
2015-10-20Merge with tip of viewer-releasecallum_linden
2015-10-19MAINT-5732: Behavior #2. Be sure that the internet stream is stopped before ↵Rider Linden
destroying the streaming audio interface. Otherwise FMODEX blocks on close.
2015-10-19Merge from viewer release.Rider Linden
2015-10-13merge changes for 3.8.5-releaseOz Linden
2015-10-02MAINT-5687: Remove old webkit from the make files and the repo. Ensure that ↵Rider Linden
it is no longer meaningfully referenced.
2015-09-21Add cleanup to LLCore prevent occasional crash on exit.Rider Linden
2015-09-21MAINT-5629: Remove llares and llareslistener. Login now does not attempt to ↵Rider Linden
do a lookup on the server names and rewrite the URL. MAINT-5614: Bad password status correctly detected.
2015-09-15MAINT-5507: Remove llcurl, move constant values and untilities to llcorehttp libRider Linden
2015-09-14MAINT-5507: Removal of sdrpc client/serverRider Linden
MAINT-5507: removal of LLCurl::Easy, LLCurl::Multi LLCurl::Responder
2015-09-14MAINT-5507: Remove HTTPClient and related cruft.Rider Linden
2015-09-01MAINT-5575: Convert the Experience cache into a coro based singleton.Rider Linden
--HG-- branch : MAINT-5575
2015-08-31Merge with viewer-releasecallum_linden
2015-08-18merge changes for 3.8.3-releaseOz Linden
2015-07-09merge changes for 3.8.0-releaseOz Linden
2015-07-01Merge from viewer-relese and become version 3.8.1andreykproductengine
2015-06-30Merge with head of viewer-releasecallum_linden
2015-06-30Point to new version of LLCefLib with support for second life URLs, version ↵callum_linden
string, navigation commands
2015-06-16MAINT-5250 Viewer should handle large number of calling cards betterandreykproductengine
2015-06-15merge changes for 3.7.30-releaseOz Linden
2015-06-08corrections needed for new toolsOz Linden
2015-06-08merge changes for 3.7.29-releaseOz Linden
2015-06-09Merge downstream codesimon
2015-07-02Merge from viewer-relese and become version 3.8.1andreykproductengine
2015-05-19MAINT-5138 FIXED Second Life Viewer's window title is "Second Life " with a ↵AndreyL ProductEngine
trailing space