Commit Graph

69 Commits

Author SHA1 Message Date
Shyotl
1c627317ec No longer include llerrorlegacy.h. Updated llstl to include deletion utilites. 2015-06-19 03:54:20 -05:00
Inusaito Sayori
72080e79e9 Sync llcommon with Alchemy a bit.
llmath::llround->ll_round
LL_ICC->LL_INTELC
Add llpredicate
Add LL_CPP11 macro
Remove llhash
Update llinitparam, llsd and all relatives of it.
2015-03-20 22:04:04 -04:00
Shyotl
2132978c41 Merge branch 'master' of https://github.com/singularity-viewer/SingularityViewer.git 2015-01-26 15:26:02 -06:00
Inusaito Sayori
39d27e3a4e Move llavatarname.* to llmessage/ from llcommon/ 2014-12-15 18:35:30 -05:00
Inusaito Sayori
80ac46c9a5 Move llfoldertype from llcommon/ to llinventory/ 2014-11-24 20:38:46 -05:00
Shyotl
37c7a72505 Implement boost and stl mutexes and atomics. 2014-09-07 17:18:55 -05:00
Shyotl
aeeca6e2c0 llcommon.dll doer faster. (set /LTCG and /GL) 2014-09-03 01:45:47 -05:00
Inusaito Sayori
d87a48ea06 Group Bans!
Thankies Baker Linden~

Ported Ansariel's mAvatarNameCacheConnection change to mAvatarNameCacheConnections to llpanelgroupbulkimpl.h

Adds setGroupID in places, in case we ever want to add that.. but for now we don't really need/use it
Adds Refresh_Off icon from upstream.

Viewer Interesting changes:
Moves LLGroupChange out of stdenums.h into llgroupmgr.h
Moves roles_constants.h from llcommon into newview

This looks like it's better without space changes...
2014-06-21 16:44:39 -04:00
Inusaito Sayori
364a13017c Merge remote-tracking branch 'fairydust/master' 2014-04-15 19:57:31 -04:00
Aleric Inglewood
006b319c3a Add AISyncClient<> (and AISyncServer).
A tool to synchronize objects:
Objects derived from AISyncClient can signal that they are
'ready' or 'not ready' for up to 4 events (using a bitmask)
at a time. Clients that signal to be ready for anything
at roughly the same time as other clients, and which return
the same 'hash' (a virtual function returning a 64bit value)
will be grouped together and receive events (by means of
virtual functions being called) to notify them of all clients
being ready or not for one of the events (syncevent1).
The other three events can be polled.

The memory usage is low (one pointer per client that points
to its AISyncServer object), servers are released to a cache
after about 100 ms (unless there is actual need for synchronization),
so there aren't much of those either.

The CPU usage is extremely low: all events are handled in
parallel in a 32 bit value (6 bits per event to count the
number of registered clients and the number of ready clients
for each event, and the remaining 8 bits to count the
number of reference pointers (which should only be a constant
higher, so that is overkill). To signal to a server that
a client has become ready or not is mostly a function call,
which then takes 1 clock cycle or so before returning.
Registration of a client is slightly more expensive as it
requires a pointer to be added to the end of a std::list.
This tool could easily be used as part of the graphics engine
(not that I intend to do that :p).
2014-04-04 15:15:26 +02:00
Inusaito Sayori
5affacab70 Fixes, mainly for Clang/Mac, from Cinder. 2014-03-24 16:56:10 -04:00
Drake Arconis
71d9084a95 Clean out old OGPX stuff 2014-03-01 17:34:22 -05: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
Shyotl
8441bc80a4 Use LLStaticHashedString for faster uniform lookup. 2013-10-26 16:26:46 -05:00
Latif Khalifa
d98402b13f Merge branch 'master' of git://github.com/Shyotl/SingularityViewer
Conflicts:
	indra/newview/llvotree.h
2013-10-10 00:03:36 +02:00
Shyotl
f25eb07fab Unstaged changes cleanup. Further vectorization. Change in binormal/bitangent calculation. 2013-10-09 15:43:23 -05:00
Latif Khalifa
4118afc146 Boost upgrade to 1.52 2013-10-05 20:27:20 +02:00
Latif Khalifa
c87f7b0576 Breakpad3: WIP, minidump files created
TODO: re-work sending crash logs
get rid of standalone loggers
2013-10-01 13:43:45 +02:00
Shyotl
ef3e918558 Initial moap commit. /VERY/ WIP. Primarily committed to clean up unstaged changes. Do not run this, even if it may compile, as it will NOT work (for a myriad of reasons)! 2013-05-31 05:33:41 -05:00
Siana Gearz
e86f3a5cbd Starting war on std::map. Peeked at what NickyD and Zwag were doing. 2013-05-11 17:52:13 +02:00
Drake Arconis
0e3a9b28bd CMake cleanup and organization 2013-03-05 12:24:51 -05:00
Drake Arconis
b800320a49 Remove LLMemType and related files 2013-03-04 12:02:01 -05:00
Latif Khalifa
18816ae146 Merge remote-tracking branch 'shyotl/sunshine' 2013-01-21 11:25:10 +01:00
Shyotl
d71210e942 Trivial changes, mostly to clean up diff noise. Majority of changes are comment corrections or licenseinfo updates. (does not include newview directory) 2013-01-07 14:44:54 -06:00
Aleric Inglewood
a9a308e5e9 Never freeze again.
Put snapshot related floaters always on top of the full screen preview.
Make having multiple running uploads more robust.
Fix infinite recursion when clicking on the bottom 'Snapshot' button
under certain conditions.
Unfreeze time more robust; unfreeze time out of precaution when
starting an upload (if 'Keep open' not checked).
Fixed a bug that caused all callbacks for successful feed uploads to be
ignored.
2013-01-06 23:40:53 +01:00
Aleric Inglewood
19f325aa09 Merge remote-tracking branch 'singu/master' into curlthreading2
Conflicts:
	indra/llcommon/CMakeLists.txt

Resolved with kdiff3 automatically.
2012-09-19 04:11:16 +02:00
Drake Arconis
86ad4aabf3 Cmake changes needed for standalone 2012-09-07 17:53:13 -04:00
Aleric Inglewood
fbb5dced97 Merge remote-tracking branch 'singu/master' into curlthreading2
Conflicts:
	indra/llcommon/CMakeLists.txt
	indra/llmessage/llcurl.cpp
	indra/llmessage/llcurl.h
	indra/llmessage/llhttpclient.cpp
	indra/llmessage/llhttpclient.h
	indra/llmessage/llpumpio.cpp
	indra/llmessage/llpumpio.h
	indra/llmessage/llurlrequest.cpp
	indra/llmessage/llurlrequest.h
	indra/newview/hipporestrequest.cpp
	indra/newview/llappviewer.cpp
	indra/newview/llspatialpartition.cpp
	indra/newview/llviewermedia.cpp
	indra/newview/llxmlrpctransaction.cpp

Conflicts resolved by choosing curlthreading2
for any llmessage file regardless (which looks
correct upon investigation); the rest also
turned out to need to use curlthreading2, except
in one line where I added a semi-colon after
an assert(), and the assert was changed in
singu/master.
2012-08-13 17:07:25 +02:00
Aleric Inglewood
37c8ea54eb Add AIThreadID - Cleanup of apr_os_thread* related code.
Apart from just really cleaning things up and moving
everything into one class regarding thread IDs (ie,
is_main_thread(), comparing ID's etc), this also
fixes an obscure bug where LL was casting thread ID's
to U32 and then compared those to find out if it
the same thread. It's theoretically possible that
such fails on a 64bit OS.

By generalizing the interface, I adopted the use
of a thread-local cache for the current thread ID
as used by LLMutex et al, so now all code benefits
from that. The idea was even extended to now also
be used for is_main_thread() tests and even resetting
a thread ID to the ID of the current thread.
2012-08-09 06:30:31 +02:00
Aleric Inglewood
caef97ad36 Print all libcurl calls if -DDEBUG_CURLIO. Don't create static lib for cwdebug.
Basically, cmake doesn't support linking static libs into a shared lib.
The correct way is to just specify source files in subdirectories
directly as source files of the shared library. This patch changes that.

Also, after this commit, when DEBUG_CURLIO is defined, every call to
libcurl is printed to llinfos (or to dc::curl when using libcwd).
2012-08-05 18:51:21 +02:00
Drake Arconis
1e81966b89 Clean up and updates
Cleaned up header bloatyness in linden_common
Moved around things to be in line with Linden Lab
Updated llinitparam and imported its new dependencies
Removed dohexeditor and related files
Removed unused legacy files

             /\_..._/\
             |/ \_/ \|
             | o.-.o |
             \ ( O ) /
             /'--U--'\
             |  .:.  | /\
             | /:;:\ |` /
   Drake     | |:;:| |-'
  Arconis   /  |'-'|  \
            `""`   `""`
2012-07-20 08:13:07 -04:00
Aleric Inglewood
058720824d Fixup of LLAtomic and LLThreadSafeRefCount 2012-06-27 04:27:07 +02:00
Aleric Inglewood
b8744b9e6a LLViewerRegion WIP: Added all headers that are dragged in.
Most in particular llevents.h, which comes along with
the demand that the old events in llevent.h are put
in a namespace LLOldEvents. Made all changes necessary
to compile the rest of the code again (without changing
the actual code: it's still using the old events).

This patch also removes LLStopWhenHandled and LLStandardSignal
from indra/llui/llnotifications.h because those are
moved to llevents.h. That seems to be the only change
to indra/llui/llnotifications.h that isn't floater related,
so I left the rest of that file alone.
2012-02-18 02:22:49 +01:00
Siana Gearz
acf378e9f2 Auto-version system 2012-02-09 14:03:49 +01:00
Shyotl
9453c2c2e9 Memory tracking system updated. 2012-01-29 01:33:14 -06:00
Siana Gearz
7d9299d870 Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2012-01-25 22:18:21 +01:00
Shyotl
6374f012de new fasttimers, including ui. 2012-01-23 18:30:54 -06:00
Aleric Inglewood
c4e55464c9 Resolved collisions of merge with siana/master 2012-01-22 01:32:52 +01:00
Shyotl
244e30297f AIAPRPool, AIAPRRootPool, AIVolatileAPRPool, AIThreadLocalData etc, were rebranded by LL. Merging change to clean up diffs. 2011-09-20 22:08:48 -05:00
Shyotl
1f187b09ee LLCommon cleanup and updating to V2 (V3 now, I guess.) 2011-08-27 01:57:10 -05:00
Aleric Inglewood
e95ee85804 Make LLFrameTimer thread-safe.
LLFrameTimer::sFrameTime is accessed by the texture
thread as well. Although the only consequences are
that it's possible for a timer in the texture thread
to time out too early (or to never time out when
it's started) when it reads this variable at the
same time as that it is updated, which is pretty
inlikely, it's just not-done to leave anything
thread-unsafe when it's known to be thread-unsafe.

This patch also adds a framework for AIFrameTimer, but
that isn't implemented yet.
2011-08-08 19:21:27 +02:00
Shyotl
f1759e0a96 Old-code related to sim-quota cleaned up. 2011-08-06 02:27:06 -05:00
Siana Gearz
aa469d860f Merge branch 'V2Mesh' of https://github.com/Shyotl/SingularityViewer into future 2011-08-01 19:56:33 +02:00
Shyotl
2aa4aa78e2 Added physics settings to object features panel. Brought in mesh 'prim cost' fetching and now display cost in edit floater if mesh is enabled. 2011-08-01 01:33:07 -05:00
Shyotl
a237cb9cad llmemory.h cleanup. pulled llpointer, refcounter, smartpointer, singleton and safe handle out into their own headers. llmemory.h drags all those headers in for legacy support until everything else is cleaned up. getCurrentRSS() moved into LLMemory. getWorkingSetSize() added to LLMemory. 2011-07-29 20:40:08 -05:00
Siana Gearz
2dd733cbaa Merge branch 'master' into future 2011-07-20 22:12:14 +02:00
Siana Gearz
73fd876423 OS X build fixes 2011-07-03 14:08:50 +02:00
Siana Gearz
6348635d3f Ïntroduced LLFolderType and LLViewerAssetType (by Shyotl) 2011-06-23 21:11:52 +02:00
Aleric Inglewood
a8d71f2550 Merge remote-tracking branch 'origin/master' 2011-06-14 16:02:43 +02:00