summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
AgeCommit message (Collapse)Author
2012-10-16Automated merge with file:///Users/nat/linden/viewer-sourceidNat Goodspeed
2012-10-16Introduce LLAppViewer::initStrings(); reload default_trans_args.Nat Goodspeed
Calling LLTrans::setDefaultArg() after LLTransUtil::parseStrings() is almost good enough -- but it fails to address the case in which one or more of the default_trans_args strings (e.g. "create_account_url") embeds a reference to the new substitution. So after the setDefaultArg() call, go back through default_trans_args, refetching each string to perform the substitution and updating it with a setDefaultArg() call of its own. All this is way too much logic to replicate in both LLAppViewer::initConfiguration() and init(), so break out new LLAppViewer::initStrings() method and call it from both places.
2012-10-15Add 'sourceid' settings var specifically for skin-files insertion.Nat Goodspeed
Add logic after (both!) LLTransUtil::parseStrings() calls to ensure that "[sourceid]" embedded in (e.g.) strings.xml content will be replaced.
2012-10-10Introduce new LLDir::findSkinnedFilenames() method. Use as needed.Nat Goodspeed
In a number of different places, for different reasons, the viewer wants to load a UI-related file that might be overridden by a non-default skin; and within that skin, might further be overridden by a non-default language. Apparently, for each of those use cases, every individual developer approached it as an entirely new problem, solving it idiosyncratically for that one case. Not only is this a maintenance problem, but it rubs one's nose in the fact that most such solutions consider only a subset of the relevant skin directories. Richard and I evolved an API intended to address all such cases: a central LLDir method returning a list of relevant pathnames, from most general to most localized, filtered to present only existing files; plus a couple of convenience methods to specifically obtain the most general and most localized available file. There were several load-skinned-file methods (LLFloater::buildFromFile(), LLPanel::buildFromFile() and LLUICtrlFactory::createFromFile() -- apparently cloned-and-modified from each other) that contained funky bolted-on logic to output the loaded data to an optional passed LLXMLNodePtr param. The trouble is that passing that param forced each of these methods to subvert its normal search: specifically for that case, it needed to find the baseline XML file instead of the localized one. Richard agreed that for the intended usage (reformatting XML files) we should use XML schema instead, and that the hacky functionality should be removed. Remove it. Also remove LLUICtrlFactory::getLocalizedXMLNode(), only used for those three special cases. Some callers explicitly passed the optional LLXMLNodePtr param as NULL. Remove that. Remove LLFloaterUIPreview::displayFloater(save) param, which relied on the optional output LLXMLNodePtr param. Make onClickSaveFloater() and onClickSaveAll() emit popupAndPrintWarning() about discontinued functionality. Recast LLFloater::buildFromFile(), LLPanel::buildFromFile(), LLUICtrlFactory::createFromFile(), LLNotifications::loadTemplates(), LLUI::locateSkin(), LLFontRegistry::parseFontInfo(), LLUIColorTable::loadFromSettings(), LLUICtrlFactory::loadWidgetTemplate(), LLUICtrlFactory::getLayeredXMLNode(), LLUIImageList::initFromFile(), LLAppViewer::launchUpdater() and LLMediaCtrl::navigateToLocalPage() to use findSkinnedFilenames(). (Is LLAppViewer::launchUpdater() ever called any more? Apparently so -- though the linux-updater.bin logic to process the relevant command-line switch has been disabled. Shrug.) (Is LLMediaCtrl::navigateToLocalPage() ever used?? If so, why?) Remove LLUI::setupPaths(), getXUIPaths(), getSkinPath() and getLocalizedSkinPath(). Remove the skins/paths.xml file read by setupPaths(). The only configuration it contained was the pair of partial paths "xui/en" and "xui/[LANGUAGE]" -- hardly likely to change. getSkinPath() specifically returned the first of these, while getLocalizedSkinPath() specifically returned the second. This knowledge is now embedded in findSkinnedFilenames(). Also remove paths.xml from viewer_manifest.py. Remove injected xui_paths from LLFontGL::initClass() and LLFontRegistry::LLFontRegistry(). These are no longer needed since LLFontRegistry can now directly consult LLDir for its path search. Stop passing LLUI::getXUIPaths() to LLFontGL::initClass() in LLViewerWindow's constructor and initFonts() method. Add LLDir::append() and add() methods for the simple task of combining two path components separated by getDirDelimiter() -- but only if they're both non-empty. Amazing how often that logic is replicated. Replace some existing concatenations with add() or append(). New LLDir::findSkinnedFilenames() method must know current language. Allow injecting current language by adding an LLDir::setSkinFolder(language) param, and pass it where LLAppViewer::init() and initConfiguration() currently call setSkinFolder(). Also add LLDir::getSkinFolder() and getLanguage() methods. Change LLFLoaterUIPreview's LLLocalizationResetForcer helper to "forcibly reset language" using LLDir::setSkinFolder() instead of LLUI::setupPaths(). Update LLDir stubs in lldir_stub.cpp and llupdaterservice_test.cpp. Add LLDir::getUserDefaultSkinDir() to obtain often-overlooked possible skin directory -- like getUserSkinDir() but with "default" in place of the current skin name as the last path component. (However, we hope findSkinnedFilenames() obviates most explicit use of such individual skin directory pathnames.) Add LLDir unit tests for new findSkinnedFilenames() and add() methods -- the latter exercises append() as well. Tweak indra/integration_tests/llui_libtest/llui_libtest.cpp for all the above. Notably, comment out its export_test_floaters() function, since the essential LLFloater::buildFromFile(optional LLXMLNodePtr) functionality has been removed. This may mean that llui_libtest.cpp has little remaining value, not sure.
2012-09-07DRTVWR-209 Merge of viewer-development with SH-3316 drano-http code.Monty Brandenberg
This was yet another refresh from v-d because of significant changes to lltexturefetch that would not have been resolvable by casual application of any merge tool. There are still a few questions outstanding but this is the initial, optimistic merge.
2012-09-05Merge in latest viewer-developmentsimon@Simon-PC.lindenlab.com
2012-08-30MAINT-1486 FIX Crash on login (Unhandled exception)Richard Linden
open root timer by default
2012-08-24Automated merge with http://bitbucket.org/lindenlab/viewer-catRichard Linden
2012-08-15merge changes for DRTVWR-194Oz Linden
2012-08-14merge back beta fixesOz Linden
2012-08-09MAINT-1342: correct initial login location handling, clarify the two related ↵Oz Linden
persistent settings
2012-08-06llfasttimer cleanupRichard Linden
removed unnecessary cache miss from fast timers renamed llfasttimer_class back to llfasttimer
2012-08-03Merge of viewer-development (3.4.1).Monty Brandenberg
2012-08-02Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2012-07-30mergeBrad Payne (Vir Linden)
2012-07-30mergeBrad Payne (Vir Linden)
2012-07-24merge to viewer-developmentoOz Linden
2012-07-23Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-release.Todd Stinson
2012-07-19SH-3280 Better init/shutdown functionality for llcorehttp by llappviewerMonty Brandenberg
Isolate llcorehttp initialization into a utility class (LLAppCoreHttp) that provides glue between app and library (sets up policies, handles notifications). Introduce 'TextureFetchConcurrency' debug setting to provide some field control when absolutely necessary.
2012-07-18SH-3275 WIP Run viewer metrics for object update messagesRichard Linden
continued clean up of llstats stuff
2012-07-12SH-3275 WIP Run viewer metrics for object update messagesRichard Linden
improved update logging API and output format
2012-07-11Pull in viewer-development because it's painful. Merge with runitai's help.simon@Simon-PC.lindenlab.com
2012-07-10SH-3244 Syscall avoidance in HttpRequest::update() methodMonty Brandenberg
Well, achieved that by doing work in bulk when needed. But turned into some additional things. Change timebase from mS to uS as, well, things are headed that way. Implement an HttpReplyQueue::fetchAll method (advertised one, hadn't implemented it).
2012-08-01Merge back viewer-lion, which has viewer-development and down-stream fixessimon@Simon-PC.lindenlab.com
2012-07-20MAINT-570 Remove unused memory tracking system LLMemTypeDave Parks
2012-07-02Merge 3.3.3 release with Drano HTTP library at 3.3.0Monty Brandenberg
Big delta was converting the new texture debugger support code to the new library. Viewer manifest should probably get an eyeball before release.
2012-06-29Use [create_account_url] from strings.xml consistently in notifications.xml.Nat Goodspeed
The URL whose simple form is http://join.secondlife.com actually appears in a number of places in the localized notifications.xml files. It's supposed to be localized for the current viewer language -- and in strings.xml, it is. But the same URL is restated a couple times in notifications.xml, sometimes localized, sometimes not. Add "create_account_url" to init_default_trans_args(), permitting us to embed [create_account_url] anywhere in the skin files. Then replace all known occurrences of that URL in notifications.xml files with [create_account_url].
2012-06-28MergeDave Parks
2012-06-28mergeDave Parks
2012-06-26v-r to drano merge conflicts wipBrad Payne (Vir Linden)
2012-06-22Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-release.Todd Stinson
2012-06-22mergeDave Parks
2012-06-21merge changes for DRTVWR-168Oz Linden
2012-06-18merge to pathfinding development branchOz Linden
2012-06-15MAINT-775 Fix for particle index pool corruption on teleport.Dave Parks
2012-06-14LLMutex recursive lock, global & per-request tracing, simple GET request, ↵Monty Brandenberg
LLProxy support, HttpOptions starting to work, HTTP resource waiting fixed. Non-LLThread-based threads need to do some registration or LLMutex locks taken out in these threads will not work as expected (SH-3154). We'll get a better solution later, this fixes some things for now. Tracing of operations now supported. Global and per-request (via HttpOptions) tracing levels of [0..3]. The 2 and 3 levels use libcurl's VERBOSE mode combined with CURLOPT_DEBUGFUNCTION to stream high levels of detail into the log. *Very* laggy but useful. Simple GET request supported (no Range: header). Really just a degenrate case of a ranged get but supplied an API anyway. Global option to use the LLProxy interface to setup CURL handles for either socks5 or http proxy usage. This isn't really the most encapsulated way to do this but a better solution will have to come later. The wantHeaders and tracing options are now supported in HttpOptions giving per-request controls. Big refactoring of the HTTP resource waiter in lltexturefetch. What I was doing before wasn't correct. Instead, I'm implementing the resource wait after the Semaphore model (though not using system semaphores). So instead of having a sequence like: SEND_HTTP_REQ -> WAIT_HTTP_RESOURCE -> SEND_HTTP_REQ, we now do WAIT_HTTP_RESOURCE -> WAIT_HTTP_RESOURCE2 (actual wait) -> SEND_HTTP_REQ. Works well but the prioritized filling of the corehttp library needs some performance work later.
2012-06-12PATH-735: Limit and clean up grid selectionOz Linden
2012-06-12HTTP Proxy, PUT & POST, unit tests and refactoring.Monty Brandenberg
Implemented/modified PUT & POST to not used chunked encoding for the request. Made the unit test much happier and probably a better thing for the pipeline. Have a cheesy static & dynamic proxy capability using both local options and a way to wire into LLProxy in llmessages. Not a clean thing but it will get the proxy path working with both socks5 & http proxies. Refactoring to get rid of unneeded library handler and unified an HttpStatus return for all requests. Big batch of code removed as a result of that and more is possible as well as some syscall avoidance with a bit more work. Boosted the unit tests for simple PUT & POST test which revealed the test harness does *not* like chunked encoding so we'll avoid it for now (and don't really need it in any of our schemes).
2012-06-06Policy + caching fixes + https support + POST workingMonty Brandenberg
Implemented first global policy definitions to support SSL CA certificate configuration to support https: operations. Fixed HTTP 206 status handling to match what is currently being done by grid services and to lay a foundation for fixes that will be a response to ER-1824. More libcurl CURLOPT options set on easy handles to do peer verification in the traditional way. HTTP POST working and now reporting asset metrics back to grid for the viewer's asset system. This uses LLSD so that is also showing as compatible with the new library.
2012-06-04merge changes for DRTVWR-157Oz Linden
2012-05-30Minor instrumentation tweaks -- add a couple of asserts, a timer, and fix ↵Dave Parks
VBO accounting.
2012-05-29fo SH-3074: clear ghost and stale texture fetching requests in time.Xiaohong Bao
2012-05-25Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148simon@Simon-PC.lindenlab.com
2012-05-24merge changes for DRTVWR-151Oz Linden
2012-05-23Integrate llcorehttp library into lltexturefetch design.Monty Brandenberg
This is the first functional viewer pass with the HTTP work of the texture fetch code performed by the llcorehttp library. Not exactly a 'drop-in' replacement but a work-alike with some changes (e.g. handler notification in consumer thread versus responder notification in worker thread). This also includes some temporary changes in the priority scheme to prevent the kind of priority inversion found in VWR-28996. Scheme used here does provide liveness if not optimal responsiveness or order-of-operation. The llcorehttp library at this point is far from optimally performing. Its worker thread is making relatively poor use of cycles it gets and it doesn't idle or sleep intelligently yet. This early integration step helps shake out the interfaces, implementation niceties will be covered soon.
2012-05-01for SH-3118: add a toggle "TextureFetchDebuggerEnabled" to turn the console ↵Xiaohong Bao
on and off.
2012-05-01merge changes for storm-1842Oz Linden
2012-05-01STORM-1842 Change variable setting from TRUE to trueJonathan Yap
2012-04-26For SH-3121: collect time of reloading all textures from cache and through ↵Xiaohong Bao
HTTP when all objects loading are done.
2012-04-25for subtasks SH-3118, SH-3112, SH-3110, SH-3106, SH-3091 for SH-3086:Xiaohong Bao
As a viewer architect, I would like to understand how fast each of the components of the texture pipeline can run in isolation