Age | Commit message (Collapse) | Author |
|
owner names.
|
|
|
|
The changeset above touched every consumer of the two LLRegistrySingletons
originally defined with std::type_info* as keys. Those two
LLRegistrySingletons were changed to use const char* as keys, then all
consumers were changed to pass std::type_info::name() instead of the plain
std::type_info* pointer -- to deal with the observed fact that on Linux, a
given type might produce different std::type_info* pointers in different load
modules. Since then, Richard turned up the fascinating fact that at least some
implementations of gcc's std::type_info::before() method already accommodate
this peculiarity. It seems worth backing out the (dismayingly pervasive)
change to see if properly using std::type_info::before() as the map comparator
will work just as well, with conceptually simpler source code.
This backout is transitional: we don't expect things to build/run properly
until we've cherry-picked certain other pertinent changes.
|
|
The "Start at:" combo box and the grid-selector box can be turned on and off
with checkboxes on the Preferences floater. Break the bottom-left layout_panel
on panel_login into several different layout_panels so when these UI elements
disappear, other controls move left to fill the holes. Similarly, when you
turn on either or both of the UI elements in question, the remaining controls
in that general bottom-left area move right to accommodate.
Tweak C++ and non-English panel_login.xml overrides to reflect widgets'
containment in new layout_panel elements.
Discard obsolete "mode_selection_text" and "mode_combo" translations from non-
English panel_login.xml overrides.
|
|
|
|
Revert to corresponding original login_help text for each affected language.
|
|
values change.
|
|
|
|
|
|
boost::unordered_map<const char*, ...> does NOT, by default, "do the right
thing." Give it hash and equality functors that do.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
en/panel_login.xml had to be changed to enlarge certain fields for other
languages (rather than overriding sizes in each of several other languages).
Still need to translate new create_account_text and verify guessed log_in_text.
|
|
|
|
|
|
This includes replacing the small "Sign up" link with a "CREATE YOUR ACCOUNT:
Start now" button, requiring a small tweak to the C++ code to Do The Right
Thing when the button (vs. the link) is clicked.
|
|
|
|
|
|
|
|
|
|
characters..." right-click menu option does not show for objects outside the current region.
|
|
|
|
volume-detect. Note that this will require Andrew's corresponding server-side change to take effect. However, the viewer change alone should have no neative effect prior to the server being updated.
|
|
Try to diagnose the cause of the misbehavior with a BOOST_STATIC_ASSERT.
|
|
|
|
|
|
|
|
Inventory
|
|
connection failure happens
|
|
longer uses Havok Debug. On other platforms, use of Debug vs Fulldebug in RelWithDebInfo is still governed by LL_DEBUG_HAVOK
|
|
|
|
|
|
|
|
Although LLRegistry and LLRegistrySingleton have always defined a COMPARATOR
template parameter, it wasn't used for the underlying map. Therefore every
type, including any pointer type, was being compared using std::less. This
happens to work most of the time -- but is tripping us up now.
Pass COMPARATOR to underlying std::map. Fix a couple minor bugs in
LLRegistryDefaultComparator (never before used!). Specialize for const char*.
Remove CompareTypeID and LLCompareTypeID because we now actively forbid using
LLRegistry<std::type_info*, ...>; remove only known reference
(LLWidgetNameRegistry definition).
|
|
applied instead of white.
|
|
Per discussion with Richard, accept the type key for insert() and find() as a
template parameter rather than as std::type_info*. This permits (e.g.) some
sort of compile-time prehashing for common types, without changing the API.
Eliminate iterators from the API altogether, thus avoiding costs associated
with transform_iterator.
Fix existing references in llinitparam.h.
|
|
Back out code that selects LLTypeInfoLookup for the underlying map
implementation when KEY = [const] std::type_info*, because LLTypeInfoLookup's
API is changing to become incompatible with std::map. Instead, fail with
STATIC_ASSERT when LLRegistry's KEY is [const] std::type_info*.
Fix all existing uses to use std::type_info::name() string instead.
|
|
enable Havok Hyrbid (fulldebug) libs to link in Windows RelWithDebInfo. On other platforms, that flag will cause RelWithDebInfo to link against Havok fulldebug libs. The rest of the time, RelWithDebInfo will link to Havok Debug and Debug will link to Havok Fulldebug
|
|
|
|
context-sensitive menu option of "Show in linksets...".
|
|
platforms. This is incomplete and requires additional changes to the 3p-havok-source repo and the llphysicsextensions-src repo.
|
|
Maybe it's failing to correctly handle overloaded transform() methods?
|
|
It seems MSVC doesn't like boost::make_transform_iterator() in the context I
was using it. Try directly invoking the iterator's constructor.
|
|
The original LLTypeInfoLookup implementation was based on two assumptions:
small overall container size, and infrequent normal-case lookup failures.
Those assumptions led to binary-searching a sorted vector, with linear search
as a fallback to cover the problem case of two different type_info* values for
the same type. As documented in the Jira, this turned out to be a problem. The
container size was larger than expected, and failed lookups turned out to be
far more common than expected.
The new implementation is based on a hash map of std::type_info::name()
strings, which should perform equally well in the success and failure cases:
no special-case fallback logic.
|
|
|
|
|