The AIXML* classes provide an Object Oriented way to serialize objects
to and from an XML file. Documentation is added at the top of aixml.cpp
These classes will be used by AIMultiGrid.
This fixes quoted strings, like <tag>"Hello \"World\""</tag>,
which otherwise might not be processed correctly because
the XML_CharacterDataHandler isn't guaranteed to be called
exactly once per element. It certainly isn't when a string
contains entities, ie: <tag>"'Hello \"World\"'"</tag>
certainly fails to be unescaped with the old code.
Moreover, the old unescape code things that a singly quote
is actually a quoted string (not noting that begin and end
quote are the same) and destructs all " entities; also
fixed with this commit.
-Nametag bubble visbility is oddly inconsistent. May vanish with future planned UI merges...
-VBOs are PAINFULLY slow on ATI hardware. This repos self-compiled davep/shining-fixes branch, so I'll leave the ball in LL's court for now regarding that.
Wrapped gSettings and the global objects returned by Settings::get() and
Globals::get() in AIThreadSafe, forcing thread-safe access.
This solves the problem of possible corruption of the various LevelMap's
in LLError::Settings due to thread unsafe accesses.
-const'd all readonly LLCached[COA]Controls to prevent altering by mistake.
-added get() accessor to LLCached[COA]Controls to return cached type explicitly without manual casts.
-added missing operators to LLCachedCOAControl
-Converted a few more settings to LLCached[COA]Control
-Fixed LLColor4U -> LLSD -> LLColor4 problems in LLCachedControl
Ascent functionality fixes:
-Tag coloring pulled out of getClientInfo(Redundant. idleUpdateNameTag already handled it)
--Tag and color substituted at render-time. Simple boolean logic. Neglible perf penalty.
-Fixed llinfos spam if AscentShowSelfTagColor = false
-Client tag updated less superfluously
-Fixed mistakes in LLCachedCOAControl revealed by GCC. Thanks Siana.
-LLCacheControl'd stuff related to postprocessing, which I may mess with later.
GCC... Sigh.
Added LLObjectList::getAvatar(LLUUID) for type-safe and quicker lookup
Added F32 overload to LLSD because using F64 needlessly is silly.
(And its lack of F32 overload caused issues with LLCachedControl<F32>)