Commit Graph

5337 Commits

Author SHA1 Message Date
Aleric Inglewood
c516a71804 Move AIAlert* into namespace AIAlert and rename classes.
Instead of having several AI* classes, it turned out to be easier to
have a namespace: this allows me to define the classes in llcommon but
add (new) 'add' and 'add_modal' functions to 'AIAlert' in llui.
This is needed to avoid a collision with the 'add' functions in
LLNotificationsUtil.

The new add/add_modal makes it a lot easier to just show a caught
alert, prepending or appending new text: it turns out that that is
way more common then a re-throw.

Adjusted code as appropriate.
2013-11-05 22:30:02 +01:00
Aleric Inglewood
8ab9039ff6 Use " and ' instead of " and ' for new msgs in strings.xml.
Since it works... this might actually be better readable and therefore
easier to work with for the translators.
2013-11-05 18:10:05 +01:00
Aleric Inglewood
b5b51bd73b Typo fix in example code. 2013-11-05 15:11:18 +01:00
Aleric Inglewood
1a9cf9b013 Bug fix for 54b43f1ad7
Initialize mLastSimAccess.
2013-11-05 03:55:40 +01:00
Aleric Inglewood
2453c13e11 Add AIXMLLindenGenepool - redo of archetype export/import using AIXML*.
In order to remove code duplication, and as prove of concept,
I redid the linden_genepool archetype export and import (from the Edit
Appearance Floater), using AIXML and AIAlert.

The import/export code did shrink significantly, and became a lot
simpler. Although a new file pair (aixmllindengenepool.{cpp,h}) is
added to define the (de)serialization of the linden_genepool XML format,
that code is now centralized in one place, and still a lot simpler.

As a bonus however, every possible error is now semi-automatically
reported to the user with all details that might help to overcome
the problem, like file names and system errors.
2013-11-05 03:01:49 +01:00
Aleric Inglewood
d174b7fcf8 Add AIXMLRootElement, AIXMLElement, AIXMLParser and AIXMLElementParser
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.
2013-11-05 03:01:48 +01:00
Aleric Inglewood
d549e549d8 Fix xml parser.
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>"&apos;Hello \"World\"&apos;"</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 &quot; entities; also
fixed with this commit.
2013-11-05 03:01:47 +01:00
Aleric Inglewood
78673e4a94 Add AIFile - LLFile but throws AIAlertCode exceptions on error.
The code is the current errno.
2013-11-05 03:01:47 +01:00
Aleric Inglewood
193010e947 Add THROW_[MF]ALERT[EC] (AIArgs, AIAlert, AIAlertCode, AIAlertPrefix, AIAlertLine)
A system to throw errors that allow for easy error reporting to the user
by showing a translated pop-up alert box with the error message.

The messages use strings.xml for translation and allow the usual
replacement args (ie [FILE] is replaced with a filename).

The exceptions can be cascaded, by adding more (translated) text
when caught and then re-throwing the result.

Macros are being used to support adding a function name prefix
to a message of the current function that the exception is thrown
from.

The syntax is:

  <macro>(<line>);		to show 'line'
  <macro>(<alert>, <line>);	to append 'line' to a caught alert.
  <macro>(<line>, <alert>);	to prepend 'line' to a caught alert.

  where <macro> is one of:
  THROW_ALERT, THROW_MALERT, THROW_FALERT, THROW_FMALERT,
  THROW_ALERTE, THROW_MALERTE, THROW_FALERTE, THROW_FMALERTE, where
  M = modal, F = Function name.
  and where <line> is one of:

  <xmldesc>
  <xmldesc>, AIArgs<args>

  where <xmldesc> is a string literal that will be looked up
  in strings.xml, and <args> is:

  (<key>, <replacement>)[<args>]

  There are more variations of the macros to throw an arbitrary
  class (append _CLASS), include an int code (append C) or
  to store the current errno as code (append E).

  For example, THROW_MALERTC(code, ...), or THROW_FALERT_CLASS(Foobar, ...),
  where the ... is the same as for the macros above.

Documentation and example usage has been added to aialert.h.
2013-11-05 03:01:47 +01:00
Aleric Inglewood
b7d2683b76 Removed LLXMLNode::writeHeaderToFile
Isn't used. This header is written else where already,
and will be written from now on (also) by AIXML*, which
will be committed next.
2013-11-05 03:01:46 +01:00
Aleric Inglewood
2f53f7232b Minor LLMD5 extension and cleanup.
* Add LLMD5::clone(unsigned char const*), the inverse of LLMD5::raw_digest.
* Add LLMD5::clone(std::string const&), the inverse of LLMD5::hex_digest.
* Add LLMD5::isFinalized(), returns true if the object is finalized.
* Turn all binary operators into inline friends in the class.
* Fix operator<< to take a LLMD5 const& instead of a LLMD5&.

These changes are needed for / used by AIMultiGrid.
2013-11-05 03:01:46 +01:00
Aleric Inglewood
b424d0232b Make #includes in llcommon header files more complete.
These includes are needed. The current code includes them
in .cpp files *before* including these include files, but
that is not very clean, and not useful.

Actually including what a header file needs makes it more
clear what it drags in, it doesn't drag in more then before.
It also allows to include these headers without having to
includes needed for the included header file in a specific
order, in every .cpp file.
2013-11-05 03:01:46 +01:00
Aleric Inglewood
54b43f1ad7 Cache the lookup of the sim access level.
Being part of the state line, it is called every frame, causing a
translation lookup every frame.
2013-11-05 03:01:46 +01:00
Aleric Inglewood
66a43ea537 Make global strerr() functions in llfile.cpp static member functions of LLFile.
This is the cleanest way to make them available to the rest of the
viewer as exported functions.

This change is needed for / use by AIMultiGrid.
2013-11-01 00:47:47 +01:00
Aleric Inglewood
198840f839 Merge remote-tracking branch 'singu/master' 2013-10-31 05:45:25 +01:00
Latif Khalifa
78843493cc Syntax error fix 2013-10-31 03:31:12 +01:00
Aleric Inglewood
4aa3863f17 Merge remote-tracking branch 'singu/master' 2013-10-31 02:54:00 +01:00
Latif Khalifa
fcfffbb322 breakpad filter signature is different on windows compated to other platforms 2013-10-31 02:51:58 +01:00
Aleric Inglewood
e4b35a050d This makes more sense 2013-10-31 02:38:23 +01:00
Aleric Inglewood
8506a16dcb Merge remote-tracking branch 'singu/master' 2013-10-31 02:19:37 +01:00
Latif Khalifa
8dab5df746 Revert "Prevent LLFace::getGeometryVolume from overwriting vbos past their end."
This reverts commit 02067f973e.
2013-10-31 02:10:57 +01:00
Aleric Inglewood
811191cc7c Merge remote-tracking branch 'singu/master' 2013-10-30 21:57:39 +01:00
Aleric Inglewood
a9972bbf02 Suppress spammy warning (debug mode) 2013-10-30 20:32:22 +01:00
Latif Khalifa
51d5984afa Allocate half a megabyte that is freed just before minidump is written in the breakpad exception handler (Siana) 2013-10-30 19:10:17 +01:00
Latif Khalifa
f1eab3f2c5 Added architecture fields to the crash report 2013-10-30 19:09:05 +01:00
Latif Khalifa
139aad333a Looks like the older version of freetype has more sever issues.
Revert "Downgraded freetype to 2.3.9 to avoid font issues in the newer version"

This reverts commit 3284b77df2.
2013-10-30 18:43:17 +01:00
Latif Khalifa
e6f70a0864 Merge branch 'master' of git://github.com/Lirusaito/SingularityViewer 2013-10-30 05:24:53 +01:00
Latif Khalifa
0933b8c43d Merge branch 'master' of https://github.com/MelanieT/SingularityViewer 2013-10-30 05:24:31 +01:00
Melanie
dfc965954e Remove attachments from the avatar's attached list before destroying them.
This should prevent the idle callbacks from accessing deleted attachments when looking for the CCS signature.
2013-10-29 22:26:58 +01:00
Latif Khalifa
02067f973e Prevent LLFace::getGeometryVolume from overwriting vbos past their end.
Possible fix for a crash in LLFace::getGeometryVolume()
Patch by NickyD/Firestorm
Crash signature: 14 and 20
2013-10-29 16:29:59 +01:00
Inusaito Sayori
ec4679c2a8 Fix the bug in which right click and then delete key would no longer work to delete objects
Navigation handling without a currently selected menu entry now only happens if key is up or down arrow
(mind the space changes)
2013-10-29 06:25:22 -04:00
Latif Khalifa
bdcc4189be Merge branch 'master' of git://github.com/Shyotl/SingularityViewer 2013-10-28 22:22:29 +01:00
Latif Khalifa
6b2628db44 Merge branch 'master' of git://github.com/Lirusaito/SingularityViewer 2013-10-28 22:22:22 +01:00
Latif Khalifa
664d5ab7fc Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2013-10-28 22:22:14 +01:00
Latif Khalifa
3284b77df2 Downgraded freetype to 2.3.9 to avoid font issues in the newer version 2013-10-28 22:21:07 +01:00
Latif Khalifa
2c1512dcbe Try finding FMOD Ex from registry intall path instead of hard coded location 2013-10-28 20:38:51 +01:00
Latif Khalifa
d8728f17ee Don't install 64 bit viewer on 32 bit OS 2013-10-28 20:23:35 +01:00
Latif Khalifa
603221fa48 Rebuilt glod using VC11 runtime 2013-10-28 19:26:17 +01:00
Inusaito Sayori
8670f45287 Fix mouselook crosshair drawing properly 2013-10-28 12:22:58 -04:00
Aleric Inglewood
aa5bc7bc25 Compile fix (libcwd) 2013-10-27 15:14:11 +01:00
Shyotl
5e8c7264da Fix artifacts from local stash merge. 2013-10-26 19:58:54 -05:00
Shyotl
6474568125 Call updateLOD when geom enters rigged state. 2013-10-26 19:09:43 -05:00
Shyotl
c1feb11d98 SH-3860. Cloud on first load issue. I'm sure the inaccessible jira has more details... 2013-10-26 18:56:39 -05:00
Shyotl
edf75a7174 setCommitOnReturn moved to from llbutton to lluictrl, cleanup some focus/key handling, avoid needless reshape calls. 2013-10-26 18:12:56 -05:00
Shyotl
30c5b9514e Let the rendertarget dictate internal format when resizing. 2013-10-26 18:09:34 -05:00
Shyotl
8e55d5499e Occlusion FBOs in deferred. 2013-10-26 18:07:56 -05:00
Shyotl
574022ed2c Made a few more fullbright face types occlude any glow behind them. 2013-10-26 18:01:36 -05:00
Shyotl
fc04f6b2e1 Added handling of GL_LUMINANCE pixel format to setManualImage. Was missing, although GL_LUMINANCE_ALPHA and GL_ALPHA were handled.
Also added missing file hurr.
2013-10-26 16:42:41 -05:00
Shyotl
7c7c64bde3 Minor upstream catchup. Added LLImageRaw::duplicate and no_copy parameter to LLImageRaw::LLImageRaw 2013-10-26 16:39:31 -05:00
Shyotl
2a432f73da Try and squelch some warnings regarding nightvision post shader on amd gpus. 2013-10-26 16:36:38 -05:00