Age | Commit message (Collapse) | Author |
|
moved viewer information strings into LLAppViewer
replaced Help>Report a Bug with direct use of Jira link
|
|
|
|
Previous CHOP-959 logic set a flag to remember that settings variable
RenderQualityPerformance was set (by --graphicslevel), so it could be applied
once LLViewerWindow is constructed. But on first viewer run, LLViewerWindow
constructor calls LLFeatureManager::applyRecommendedSettings(), which resets
that settings variable! So don't just set a flag, actually capture the
requested RenderQualityPerformance value for later.
|
|
|
|
and last_exec_duration
|
|
|
|
|
|
|
|
|
|
(and clean up logic around multiple instances)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Most of the merge was clean, a couple conflicts.
Brought over a couple patches manually for llpolymesh.
|
|
- Updated to .xib format. To produce a new nib (which is required after changing the xib file), use "ibtool SecondLife.xib --compile SecondLife.nib" within the newview directory.
- xib file now defines the viewer's window. VIews are still being pragmatically added to the main window. This may change in the future.
- LLAppViewer's main loop has been slightly refactored to be executed on a timer for OS X. This probably needs a bit more work.
- Event handling still needs more work to work within a timer based event loop. It works fairly sporadically at the moment, as if events are being dropped between timer executions, at least for the mouse.
- Carbon has been purged from the viewer's startup, and from LLWindow entirely. There's likely still a few odds and ends fragmented throughout the viewer and its dependencies. Need to track these down.
- LLAppViewerMacOSX now uses NSApplicationMain, and also implements the NSApplicationDelegate protocol in LLAppDelegate.
- Fullscreen support has been implemented for OS X 10.7+
This is still a work in progress, however at this stage everything needed for a functional viewer is (mostly) complete. From here, it's mostly just bug hunting and fixing.
|
|
|
|
alignment issue in llAppearance.
|
|
|
|
version manager query
|
|
|
|
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.
|
|
|
|
removed unnecessary cache miss from fast timers
renamed llfasttimer_class back to llfasttimer
|
|
|
|
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.
|
|
|
|
|
|
|
|
Repo created from Firestorm patch by Jonathan Yap
|
|
You can specify one or more instances of --leap 'command line'. Each such
command line is parsed using bash-like conventions, notably honoring double
quotes, e.g. --leap '"c:/Program Files/Something/something.exe" arg1 arg2'.
(Specifying such an argument in a Windows Command Prompt may be tricky.)
Such a program should read its stdin and write to its stdout using LLSD Event
API Plugin protocol: length:serialized_LLSD
where 'length' is the decimal integer count of bytes in serialized_LLSD,
':' is a literal colon character,
and 'serialized_LLSD' is notation-format LLSD.
A typical LLSD object is a map containing 'pump' and 'data' keys, where
'pump' is the name of the LLEventPump on which to send 'data' (or on which
'data' was received). In particular, the initial LLSD object on stdin mentions
the name of this plugin's reply LLEventPump: the LLEventPump that will send
every subsequent received event to the plugin's stdin.
Anything written to the plugin's stderr will be logged in the viewer log. In
addition to being generally useful, this helps debug problems with particular
plugins.
|
|
|
|
|
|
|
|
It turned out impossible to properly remove an inventory item
from within LLDiscardAgentOffer::done(), because that would lead to
nested LLInventoryModel::notifyObservers() calls.
Fixed that by deferring removal until the next LLAppViewer::idle() iteration.
Also elimiteed duplicated code.
|
|
|
|
maximized window to fully immerse myself in the experience
* Added virtual meetsRequirementsForMaximizedStart() function to determine whether or not to start the initial experience in a maximized window
Reviewed by Richard
|
|
|
|
|
|
retaining relevant user settings (login account name, etc.)
converted settings_file.xml to use param block descriptions for easier modification
added session settings file and user session settings file for per-session config overrides
|
|
accessed through the static LLThread::tldata().
Currently this object contains two (public) thread-local
objects: a LLAPRRootPool and a LLVolatileAPRPool.
The first is the general memory pool used by this thread
(and this thread alone), while the second is intended
for short lived memory allocations (needed for APR).
The advantages of not mixing those two is that the latter
is used most frequently, and as a result of it's nature
can be destroyed and reconstructed on a "regular" basis.
This patch adds LLAPRPool (completely replacing the old one),
which is a wrapper around apr_pool_t* and has complete
thread-safity checking.
Whenever an apr call requires memory for some resource,
a memory pool in the form of an LLAPRPool object can
be created with the same life-time as this resource;
assuring clean up of the memory no sooner, but also
not much later than the life-time of the resource
that needs the memory.
Many, many function calls and constructors had the
pool parameter simply removed (it is no longer the
concern of the developer, if you don't write code
that actually does an libapr call then you are no
longer bothered with memory pools at all).
However, I kept the notion of short-lived and
long-lived allocations alive (see my remark in
the jira here: https://jira.secondlife.com/browse/STORM-864?focusedCommentId=235356&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-235356
which requires that the LLAPRFile API needs
to allow the user to specify how long they
think a file will stay open. By choosing
'short_lived' as default for the constructor
that immediately opens a file, the number of
instances where this needs to be specified is
drastically reduced however (obviously, any
automatic LLAPRFile is short lived).
***
Addressed Boroondas remarks in https://codereview.secondlife.com/r/99/
regarding (doxygen) comments. This patch effectively only changes comments.
Includes some 'merge' stuff that ended up in llvocache.cpp
(while starting as a bug fix, now only resulting in a cleanup).
***
Added comment 'The use of apr_pool_t is OK here'.
Added this comment on every line where apr_pool_t
is correctly being used.
This should make it easier to spot (future) errors
where someone started to use apr_pool_t; you can
just grep all sources for 'apr_pool_t' and immediately
see where it's being used while LLAPRPool should
have been used.
Note that merging this patch is very easy:
If there are no other uses of apr_pool_t in the code
(one grep) and it compiles, then it will work.
***
Second Merge (needed to remove 'delete mCreationMutex'
from LLImageDecodeThread::~LLImageDecodeThread).
***
Added back #include <apr_pools.h>.
Apparently that is needed on libapr version 1.2.8.,
the version used by Linden Lab, for calls to
apr_queue_*. This is a bug in libapr (we also
include <apr_queue.h>, that is fixed in (at least) 1.3.7.
Note that 1.2.8 is VERY old. Even 1.3.x is old.
***
License fixes (GPL -> LGPL). And typo in comments.
Addresses merov's comments on the review board.
***
Added Merov's compile fixes for windows.
|
|
|
|
|
|
|
|
|
|
In the viewer, the region's UUID is acquired very late and isn't generally
used as the canonical region identifier. The U64 region hash is a better
and more consistently used identifier so I'm moving over to using that as
the region key. Don't have a proper reserved invalid region hash which is
unfortunate, but then, so much is.
|
|
Using unpause() method in derived class rather than wake() in furthest base class
solved the stalling problem. I still think too many levels of the
LLTextureFetch hierarchy are keeping thread state, however. The
LLViewerRegion instance an agent enters doesn't necessarily have its
region_id yet, that only comes after the handshake, if any. So add
a few more metrics insertion points to propagate region into metrics.
Finally, try to launch a final metrics report when a quit is initiated.
|
|
|